k8s之Pod管理

pod.xml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: daocloud.io/library/nginx
  • 创建
[root@node1 ~]# kubectl create -f pod.yaml 
pod/nginx-pod created
  • 查看
[root@node1 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 19s
[root@node1 ~]# kubectl describe pod nginx-pod
  • 更新

编辑yaml文件后删除原来pod重新创建

kubectl replace --force -f  pod.yaml
  • 删除
[root@node1 ~]# kubectl delete -f pod.yaml 
  • 资源限制
    • requests保证最小使用
    • limits 最大使用,cpu限制为比例
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
 containers:
 - name: nginx
   image: daocloud.io/library/nginx
   resources:
     requests:
       memory: "64Mi"
       cpu: "250m"
     limits:
        memory: "128Mi"
        cpu: "500m"
  • 调度约束
    • nodeName:强制调度  指定节点的IP地址
    • nodeselector  匹配调度

为node节点创建一个标签

[root@node1 ~]# kubectl label nodes 192.168.57.14 env_role=dev

pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  nodeName: 192.168.57.14
  #nodeSelector:
   # env_role: dev
  containers:
  - name: nginx
    image: daocloud.io/library/nginx
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
         memory: "128Mi"
         cpu: "500m"
  • 重启策略
    三种重启策略

    • Always: 默认策略  容器停止 总是重建

    • OnFailure: 当容器异常退出 状态非0时才重启

    • Never:  从不重启容器

spec:
  restartPolicy: OnFailure

健康检查

  • 提供Probe机制 有两种类型

    • livenessProbe
      如果检查失败 将杀死容器  然后根据restartPolicy来具体操作
    • readinessProbe
      如果检查失败  会把pod从service  endpoints中剔除
  • Probe支持三种检查方法

    • httpGet
      发送http请求  返回200-400 状态为成功
    • exec
      执行shell命令  返回状态0成功
    • tcpSocket
      发起Tcp socket建立成功

pod.yaml

spec:
  containers:
  - name: nginx
    image: daocloud.io/library/nginx:latest
    ports:
    - containerPort: 80
    livenessProbe:
      httpGet:
      path: /index.html
      port: 80
  • 问题定位
    kubectl   describe  pod 
    kubectl   -f logs         -f 类似tail参数一样
    kubectl  exec  -it

k8s之Pod管理
http://www.jcwit.com/article/185/
作者
Carlos
发布于
2019年5月6日
许可协议