如何理解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:80Welcome 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已经可以正常工作了。
在上面的例子中,我们给容器指定的镜像版本为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的增删改查操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!