【Kubernetes | Pod 系列】Pod 的基本管理(3)——对 Pod 的删除与修改

发布于:2022-11-14 ⋅ 阅读:(1144) ⋅ 点赞:(1)

2.3 删除 Pod

怎么定义 Pod 就怎么删除。

kubectl delete pod pod4
#或
kubectl delete -f vmware-nginx.yaml

强制删除

kubectl delete pod vmware-nginx --force 

参数说明

  • kubectl delete:删除命令关键字。
  • pod:指定资源类型 Pod。
  • vmware-nginx:准备删除的 Pod 名。
  • –force:表示强制删除。

2.4 修改 Pod

kubectl edit命令无法在线修改 Pod 资源对象的属性。

(1)命令式创建的 Pod

命令式创建 Pod 的方法有两种:

  • kubectl run 创建
  • kubectl create 创建

① kubectl run 命令创建 Pod

使用kubectl run 创建的 Pod 不支持修改。

② kubectl create 命令创建 Pod

kubectl create 命令创建 Pod 时也用到了 YAML 文件。

示例

通过 pod1.yaml 创建一个 Pod。

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod1
  name: pod1
spec:
  containers:
  - image: nginx
    imagePullPolicy: IfNotPresent
    name: pod1
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

使用 kubectl create 命令创建 Pod。

kubectl create -f pod1.yaml

这时候我们计划将容器的镜像版本从 latest 降为 v1.7.9。先在 YAML 文件中修改镜像版本参数值

....
spec:
  containers:
  - image: nginx:1.7.9      # 修改镜像版本,其余配置不变。
....

使用 kubectl replace 命令更新 Pod。

kubectl replace -f pod1.yaml --force

这种先使用 kubectl create 命令,再使用 kubectl replace 命令的操作,称为命令式配置文件操作。

命令执行完成后,名为 pod1 的 Pod 会被删除后再新建。

(2)声明式创建的 Pod

由 kubectl apply 命令创建的 Pod,可以修改对应的 YAML 文件来修改 Pod中的参数。但不能修改metadata.name(Pod名),否则将重新创建一个新 Pod。

示例

通过 pod1.yaml 创建一个 Pod。

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod1
  name: pod1
spec:
  containers:
  - image: nginx
    imagePullPolicy: IfNotPresent
    name: pod1
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

使用 kubectl apply 命令创建 Pod。

kubectl apply -f pod1.yaml

这时候我们计划将容器的镜像版本从 latest 降为 v1.7.9。先在 YAML 文件中修改镜像版本参数值

....
spec:
  containers:
  - image: nginx:1.7.9      # 修改镜像版本,其余配置不变。
....

再次使用 kubectl apply 命令更新 Pod。

kubectl apply -f pod1.yaml

命令执行完成后,名为 pod1 的 Pod 不会删除后再新建,也不会另外创建新 Pod。只会在原 Pod 基础上进行内部配置修改。

关联博客

关于 Pod 的创建,查询,修改,删除,访问容器以及故障排错。请跳转下面的博文: