首页 > 其他分享 >Pod管理策略(资源清单文件)

Pod管理策略(资源清单文件)

时间:2024-09-11 21:53:57浏览次数:12  
标签:myhttp node name 管理策略 master 清单 Pod root

了解模板和帮助信息方法

[root@master ~]# kubectl create Tab键     #查找需要使用的相关子命令
[root@master ~]# bubectl 子命令  --help
[root@master ~]# kubectl create 复制查找出来的信息 --dry-run=client -o yaml  # 获取资源对象模板
[root@master ~]# kubectl explain Pod.metadata  # 查询帮助信息

1.配置名称空间

[root@master ~]# vim myweb.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: myweb
  namespace: default
spec:
  containers:
  - name: nginx
    image: myos:nginx
status: {}

2.多容器Pod

[root@master ~]# vim mynginx.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: mynginx
  namespace: default
spec:
  containers:
  - name: nginx
    image: myos:nginx
  - name: php
    image: myos:php-fpm
###注意一个Pod容器的共享网络IP,创建的容器的服务不能用相同端口,否测会
###注意多容器的Pod,在用logs,exec,cp等要采用-c去指定哪个容器
# 查看日志
[root@master ~]# kubectl logs mynginx -c nginx
# kubectl exec -it mynginx -c nginx -- pstree -p

3.容器保护策略

[root@master ~]# vim mycmd.yaml
[root@master ~]# vim mycmd.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: mycmd
spec:
  restartPolicy: OnFailure      # 配置重启策略,表示失败后重启,此外还有Always/Never
  containers:
  - name: linux
    image: myos:httpd
    command: ["sleep"]          # 执行shell命令行命令
    args:
    - "30"

4.宽限期策略

[root@master ~]# vim mycmd.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: mycmd
spec:
  terminationGracePeriodSeconds: 0  # 设置宽限期,0表示没有宽限期
  restartPolicy: OnFailure
  containers:
  - name: linux
    image: myos:httpd
    command: ["sleep"]
    args:
    - "30"

5.Pod任务脚本

[root@master ~]# vim mycmd.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: mycmd
spec:
  terminationGracePeriodSeconds: 0
  restartPolicy: OnFailure
  containers:
  - name: linux
    image: myos:8.5
    command: ["sh"]
    args:
    - -c
    - |
      for i in {0..9};do
          echo hello world.
          sleep 3.3
      done
      exit 0

6.最大生命周期

[root@master ~]# vim mycmd.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: mycmd
spec:
  terminationGracePeriodSeconds: 0
  activeDeadlineSeconds: 60      # 可以执行的最大时长
  restartPolicy: OnFailure
  containers:
  - name: linux
    image: myos:8.5
    command: ["sh"]
    args:
    - -c
    - |
      for i in {0..9};do
          echo hello world.
          sleep 33
      done
      exit 0

7.Pod调度策略

[root@master ~]# vim myhttp.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: myhttp
spec:
  nodeName: node-0001     # 基于节点名称进行调度
  containers:
  - name: apache
    image: myos:httpd

8.标签管理

# 查看标签
[root@master ~]# kubectl get pods --show-labels

 添加标签
[root@master ~]# kubectl label pod myhttp app=apache
pod/myhttp labeled
[root@master ~]# kubectl get pods --show-labels 
NAME      READY   STATUS    RESTARTS   AGE   LABELS
myhttp    1/1     Running   0          14m   app=apache

# 删除标签
[root@master ~]# kubectl label pod myhttp app-
pod/myhttp unlabeled
[root@master ~]# kubectl get pods --show-labels 
NAME      READY   STATUS    RESTARTS   AGE   LABELS
myhttp    1/1     Running   0          14m   <none>

# 资源清单文件配置标签
[root@master ~]# vim myhttp.yaml 
---
kind: Pod
apiVersion: v1
metadata:
  name: myhttp
  labels:
    app: apache
spec:
  containers:
  - name: apache
    image: myos:httpd
    
# 使用标签过滤资源对象
[root@master ~]# kubectl get pods -l app=apache

9.基于标签调度(k8s做应用分区:给不同node打不同标签,再通过用资源清单文件nodeSelector筛选,创建pod)

# 查询 node 节点上的标签
[root@master ~]# kubectl get nodes --show-labels
NAME        STATUS   ROLES            VERSION   LABELS
master      Ready    control-plane    v1.29.2   kubernetes.io/hostname=master
node-0001   Ready    <none>           v1.29.2   kubernetes.io/hostname=node-0001
node-0002   Ready    <none>           v1.29.2   kubernetes.io/hostname=node-0002
node-0003   Ready    <none>           v1.29.2   kubernetes.io/hostname=node-0003
node-0004   Ready    <none>           v1.29.2   kubernetes.io/hostname=node-0004
node-0005   Ready    <none>           v1.29.2   kubernetes.io/hostname=node-0005

# 使用 node 上的标签调度 Pod
[root@master ~]# vim myhttp.yaml 
---
kind: Pod
apiVersion: v1
metadata:
  name: myhttp
  labels:
    app: apache
spec:
  nodeSelector:
    kubernetes.io/hostname: node-0002
  containers:
  - name: apache
    image: myos:httpd

[root@master ~]# kubectl replace --force -f myhttp.yaml
pod "myhttp" deleted
pod/myhttp replaced
[root@master ~]# kubectl get pods -o wide
NAME      READY   STATUS    RESTARTS   AGE   IP            NODE
myhttp    1/1     Running   0          1s    10.244.2.11   node-0002


标签:myhttp,node,name,管理策略,master,清单,Pod,root
From: https://blog.51cto.com/u_16975976/11983529

相关文章

  • 理论+实战了解kubernetes及pod管理
    一、kubernetes简介及部署方法1.1kubernetes介绍kubernetes是一个容器编排软件工具,除了它还有doker自带的容器编排工具Swarm、apche的一个资源统一管控工具mesos等kubernetes在Docker作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年Borg系统运行......
  • 苹果新品发布会将推出AirPods Max 2头戴式耳机:降噪功能提升 改用USB-C接口
    9月9日消息,古尔曼今日发文称,苹果将在明日的“It'sGlowtime”活动中推出新的AirPodsMax。这是自2020年12月该耳机亮相以来的首次更新,而新的AirPodsMax将在明天的活动中与新的AirPods4一起推出。不过,此前古尔曼预测苹果不会推出新款AirPodsMax,而此次的发布消息打破了这一预测......
  • 选择品牌重塑代理机构:完美选择的五步清单
    对一个组织进行品牌重塑是企业生命周期中的关键任务。即使公司已经建立了强大的品牌,仍然有可能需要通过品牌重塑来实现多个目标,例如保持增长、扩展产品线、进入新的消费者群体或更新过时的品牌形象。建立品牌是一个复杂的过程,而执行品牌重塑则更具挑战性。你需要品牌专业知识......
  • Pod指标WSS和RSS区别
    在Kubernetes中,Pod的内存使用情况通常通过以下两个指标来监控:1.WSS(WorkingSetSize)定义:WSS是指Pod当前正在使用的内存量,包括活跃的、最近被访问的和缓存的内存。它代表了应用程序实际需要的内存量。特点:WSS是动态变化的,随着应用程序的运行状态而变化。它更能反映......
  • Kubernetes Pod四种常见调度策略详解
    在Kubernetes(k8s)的世界里,Pod是最基本的部署单元,它可能包含一个或多个容器。如何将这些Pod调度到集群中的适当节点上,是一个至关重要的问题。Kubernetes提供了多种调度策略,以确保Pods能够高效、稳定地运行。本文将详细介绍四种常见的KubernetesPod调度方式。1.默认调度默认调度......
  • Kubernetes Pod的常见调度方式
    Kubernetes中的Pod调度是将Pod分配到合适节点的过程。调度器负责这一过程,并有多种调度方式和策略,以下是一些常见的调度方式:1.默认调度(DefaultScheduling)功能:Kubernetes的默认调度器(kube-scheduler)会根据一系列内置的调度策略自动选择适合的节点。考虑因素:它会考虑节点......
  • 一文读懂Pod以及实践攻略
    ❤️感谢关注,原文来自:https://www.cnblogs.com/StevenZengStudy/p/18402282目录1.概念1.1什么是Pod1.2Pod管理容器1.3通过工作负载管理Pod1.4Pod的生命周期1.5静态pod2.Pod的基础操作2.1创建第一个Pod2.2修改和更新Pod2.3进入Pod的容器2.4删除Pod3.使用yaml文件配置Pod3.1......
  • Pod 生命周期的钩子函数
    在Kubernetes中,Pod的生命周期管理可以通过钩子函数(LifecycleHooks)来增强。这些钩子允许开发者在Pod的特定生命周期阶段执行自定义操作。以下是两种主要的钩子函数:1.PreStopHook描述:在容器被终止之前执行的钩子。这个钩子通常用于在容器停止前执行一些清理操作,比如关闭连接......
  • pod几种常见状态
    在Kubernetes中,Pod的状态反映了其当前的运行情况和健康状况。以下是几种常见的Pod状态:1.Pending描述:Pod已被调度到节点,但尚未启动。可能是由于资源不足(如CPU、内存)或其他原因导致未能创建容器。原因:等待所需资源可用、等待Volume绑定等。2.Running描述:Pod正在运行,至少有......
  • pod DNS解析流程
    在Kubernetes中,Pod的DNS解析流程主要涉及到KubernetesDNS服务(通常是CoreDNS或kube-dns)以及KubernetesAPI。以下是PodDNS解析的详细流程:1.DNS配置每个Pod在创建时,会根据其所在的Namespace和集群的DNS设置获得DNS配置。Pod的/etc/resolv.conf文件通......