溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2021-11-24 16:47:42 來源:億速云 閱讀:173 作者:柒染 欄目:云計(jì)算

如何理解Pod的增刪改查操作,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

我們通過一個(gè)簡單的例子,來演示Pod資源的增刪改查操作。

創(chuàng)建Pod

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

apiVersion: v1
kind: Pod
metadata:
  name: pod-runs-nginx
spec:
  containers:
    - name: nginx
      image: nginx:latest

通過配置可知,我們將創(chuàng)建一個(gè)類型為Pod的資源,資源的版本為v1,Pod名稱為pod-runs-nginx,Pod中容器名字為nginx,容器鏡像為nginx:latest。

使用kubectl create命令創(chuàng)建資源,如下所示:

[root@ecs-d8b6 ~]# kubectl create -f pod_simple.yaml 
pod/pod-runs-nginx created

通過命令行輸出可知,Kubernetes已經(jīng)安照我們的配置創(chuàng)建了一個(gè)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已經(jīng)處于Running狀態(tài)。

我們還可以給kubectl get 命令增加-o yaml參數(shù),來查看Pod更詳細(xì)的信息,如下所示:

[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在創(chuàng)建資源對象時(shí)會(huì)增加很多默認(rèn)屬性,受限于篇幅,上面只展了一部分信息。

我們知道,Kubernetes會(huì)為每個(gè)Pod分配一個(gè)IP,從上面的輸出中可以看到該P(yáng)od的IP為172.17.0.6,我們可以使用該IP來訪問Pod中的容器。

由于nginx默認(rèn)監(jiān)聽在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>

通過輸出內(nèi)容,可以看到nginx已經(jīng)可以正常工作了。

更新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中的容器鏡像版本已經(jīng)更新了:

[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時(shí)會(huì)相應(yīng)地停止并刪除其所包含的容器。

Pod作為最基礎(chǔ)的資源,與其他Kubernetes資源一樣,都可以使用kubectl來操作。

看完上述內(nèi)容,你們掌握如何理解Pod的增刪改查操作的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

pod
AI