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

76次阅读
没有评论

共计 2407 个字符,预计需要花费 7 分钟才能阅读完成。

如何理解 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
 !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 已经可以正常工作了。

更新 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 的增删改查操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2407字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)