如何理解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资源。
使用命令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 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> ... </head> <body> <h2>Welcome to nginx!</h2> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> ... <p><em>Thank you for using nginx.</em></p> </body> </html>
通过输出内容,可以看到nginx已经可以正常工作了。
在上面的例子中,我们给容器指定的镜像版本为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 ...
使用命令kubectl delete
命令可以删除Pod,如下所示:
[root@ecs-d8b6 ~]# kubectl delete pods pod-runs-nginx pod "pod-runs-nginx" deleted
删除Pod时会相应地停止并删除其所包含的容器。
Pod作为最基础的资源,与其他Kubernetes资源一样,都可以使用kubectl来操作。
看完上述内容,你们掌握如何理解Pod的增删改查操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。