您好,登錄后才能下訂單哦!
如何理解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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。