如何理解Pod的增删改查操作

如何理解Pod的增删改查操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联是一家专注于成都网站设计、做网站和成都棕树电信机房的网络公司,有着丰富的建站经验和案例。

我们通过一个简单的例子,来演示Pod资源的增删改查操作。

创建Pod

首先将如下配置保存到名为pod_simple.yaml的文件中:

apiVersion: v1
kind: Pod
metadata:
  name: pod-runs-nginx
spec:
  containers:
    - name: nginx
      image: nginx:latest

通过配置可知,我们将创建一个类型为Pod的资源,资源的版本为v1,Pod名称为pod-runs-nginx,Pod中容器名字为nginx,容器镜像为nginx:latest

使用kubectl create命令创建资源,如下所示:

[root@ecs-d8b6 ~]# kubectl create -f pod_simple.yaml 
pod/pod-runs-nginx created

通过命令行输出可知,Kubernetes已经安照我们的配置创建了一个Pod资源。

查看Pod

使用命令kubectl get命令查看Pod,如下所示:

[root@ecs-d8b6 ~]# kubectl get pods
NAME             READY   STATUS    RESTARTS   AGE
pod-runs-nginx   1/1     Running   0          26s

可以看到名为pod-runs-nginx的Pod已经处于Running状态。

我们还可以给kubectl get 命令增加-o yaml参数,来查看Pod更详细的信息,如下所示:

[root@ecs-d8b6 ~]# kubectl get pods pod-runs-nginx -o yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-runs-nginx
  namespace: default
  uid: 6a946bac-e288-4e19-b743-7ee0eb04aa73
  ...
spec:
  containers:
  - image: nginx:latest
    imagePullPolicy: Always
    name: nginx
  restartPolicy: Always
  ...
status:
  phase: Running
  podIP: 172.17.0.6
  ...

Kubernetes在创建资源对象时会增加很多默认属性,受限于篇幅,上面只展了一部分信息。

我们知道,Kubernetes会为每个Pod分配一个IP,从上面的输出中可以看到该Pod的IP为172.17.0.6,我们可以使用该IP来访问Pod中的容器。

由于nginx默认监听在80端口,我们便可以使用Pod IP和端口来访问nginx,如下所示:

[root@ecs-d8b6 ~]# curl 172.17.0.6:80



Welcome to nginx!
...


Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

...

Thank you for using nginx.

通过输出内容,可以看到nginx已经可以正常工作了。

更新Pod

在上面的例子中,我们给容器指定的镜像版本为nginx:latest,我们可以修改镜像版本为nginx:1.19.0,于是我们把配置文件做如下修改:

apiVersion: v1
kind: Pod
metadata:
  name: pod-runs-nginx
spec:
  containers:
    - name: nginx
      image: nginx:1.19.0 # 修改镜像版本

然后使用命令kubectl apply 来提交修改后的配置,如下所示:

[root@ecs-d8b6 ~]# kubectl apply -f pod_simple.yaml 
pod/pod-runs-nginx configured

然后再次查看Pod信息,可以看到Pod中的容器镜像版本已经更新了:

[root@ecs-d8b6 ~]# kubectl get pods pod-runs-nginx -o yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-runs-nginx
  namespace: default
  uid: 6a946bac-e288-4e19-b743-7ee0eb04aa73
spec:
  containers:
  - image: nginx:1.19.0 # 镜像版本已更新
    imagePullPolicy: Always
    name: nginx
  restartPolicy: Always
  ...
status:
  phase: Running
  podIP: 172.17.0.6
  ...

删除Pod

使用命令kubectl delete命令可以删除Pod,如下所示:

[root@ecs-d8b6 ~]# kubectl delete pods pod-runs-nginx 
pod "pod-runs-nginx" deleted

删除Pod时会相应地停止并删除其所包含的容器。

Pod作为最基础的资源,与其他Kubernetes资源一样,都可以使用kubectl来操作。

看完上述内容,你们掌握如何理解Pod的增删改查操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


新闻标题:如何理解Pod的增删改查操作
分享地址:http://scyanting.com/article/jceojp.html