千家信息网

Kubernetes中Pod使用方法

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Pod是Kubernetes调度的最小单元。一个Pod可以包含一个或多个容器,因此它可以被看作是内部容器的逻辑宿主机。资源限制pod和container的资源请求和限制#cpu上限spec.conta
千家信息网最后更新 2025年12月02日Kubernetes中Pod使用方法

Pod是Kubernetes调度的最小单元。一个Pod可以包含一个或多个容器,因此它可以被看作是内部容器的逻辑宿主机。

资源限制

pod和container的资源请求和限制

#cpu上限spec.containers[].resources.limits.cpu#内存上限spec.containers[].resources.limits.memory#创建时分配的基本cpu资源spec.containers[].resources.requests.cpu#创建时分配的基本内存资源spec.containers[].resources.requests.memory

示例演示(在master1端操作)

  • 创建pod2.yaml文件
vim pod2.yamlapiVersion: v1kind: Podmetadata:  name: frontend          #Pod资源的名称spec:  containers:  - name: db          #容器1的名称    image: mysql    env:    - name: MYSQL_ROOT_PASSWORD      value: "password"    resources:      requests:        memory: "64Mi"        cpu: "250m"      limits:        memory: "128Mi"        cpu: "500m"  - name: wp          #容器2的名称    image: wordpress    resources:      requests:        memory: "64Mi"        cpu: "250m"      limits:        memory: "128Mi"        cpu: "500m"
  • 创建资源
kubectl apply -f pod2.yaml
  • 查看资源详细信息
kubectl describe pod frontend
  • 查看对应节点上Pod资源的占用情况
kubectl describe nodes 192.168.142.130
  • 查看命名空间
kubectl get ns

重启策略

1:Always:当容器终止推出后,总是重启容器,默认策略2:Onfailure:当容器异常退出(退出码为非0)时,重启容器3:Never:当容器终止退出,从不重启资源注意:k8s中不支持重启pod资源,只有删除重建

示例演示

  • 默认的重启策略是Always
kubectl edit deploy#输入/restartPolicy查找restartPolicy: Always       #没有设定重启策略时默认为Always#创建pod3.yaml文件vim pod3.yamlapiVersion: v1kind: Podmetadata:  name: foospec:  containers:  - name: busybox    image: busybox    args:           #参数    - /bin/sh       #在shell环境中    - -c            #command命令    - sleep 30; exit 3          #容器启动后休眠30s,异常退出返回状态码为非0值#创建资源kubectl apply -f pod3.yamlkubectl get pods#此时会出现Error报错,因刚刚设置的异常退出,一会再查看时RESTARTS重启值会变为1、
  • 添加重启策略Never
#修改pod3.yaml文件vim pod3.yamlapiVersion: v1kind: Podmetadata:  name: foospec:  containers:  - name: busybox    image: busybox    args:    - /bin/sh    - -c    - sleep 10                  #修改休眠时间为10s  restartPolicy: Never          #添加重启策略#创建资源kubectl apply -f pod3.yaml

健康检查,又称为探针(Probe)

  • 注意:规则可以同时定义
livenessProbe 如果检查失败,将杀死容器,根据Pod的restartPolicy来操作ReadinessProbe 如果检查失败,kubernetes会把Pod从service endpoints后端节点中中剔除
  • Probe支持三种检查方法
httpGet 发送http请求,返回200-400范围状态码为成功exec 执行Shell命令返回状态码是0为成功tcpSocket 发起TCP Socket建立成功

示例演示

  • 创建资源
#创建pod4.yaml文件vim pod4.yamlapiVersion: v1kind: Podmetadata:  labels:    test: liveness  name: liveness-execspec:  containers:  - name: liveness    image: busybox    args:    - /bin/sh    - -c    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy    #创建一个空文件,休眠30s,删除这个空文件    livenessProbe:      exec:      #探测健康        command:        #command命令        - cat        #执行查看命令        - /tmp/healthy          #创建的空文件      initialDelaySeconds: 5      #容器创建完成5秒之后开始健康检查      periodSeconds: 5        #检查的间隔频率为5秒
  • 刷新资源
#创建资源kubectl apply -f pod4.yamlkubectl get pods#当中状态不断改变,就代表它正在不断的进行检查,然后不断的执行重启策略,其中的RESTARTS重启值也会随之增加

谢谢阅读!

0