千家信息网

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

发表于:2024-09-27 作者:千家信息网编辑
千家信息网最后更新 2024年09月27日,如何理解Pod的增删改查操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们通过一个简单的例子,来演示Pod资源的增删改查操作。创建P
千家信息网最后更新 2024年09月27日如何理解Pod的增删改查操作

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

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

创建Pod

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

apiVersion: v1kind: Podmetadata:  name: pod-runs-nginxspec:  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 podsNAME             READY   STATUS    RESTARTS   AGEpod-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 yamlapiVersion: v1kind: Podmetadata:  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:80Welcome to nginx!...

Welcome to nginx!

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

...

Thank you for using nginx.

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

更新Pod

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

apiVersion: v1kind: Podmetadata:  name: pod-runs-nginxspec:  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 yamlapiVersion: v1kind: Podmetadata:  name: pod-runs-nginx  namespace: default  uid: 6a946bac-e288-4e19-b743-7ee0eb04aa73spec:  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的增删改查操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0