天天看點

Kubernetes編寫yaml檔案示例

建立nginx-deployment.yaml,意思為建立2個pod,每個pod裡的nginx版本為1.7.9,容器監聽端口(containerPort)是 80

一個 YAML 檔案,對應到 Kubernetes 中,就是一個 API Object(API 對象)。當為這個對象的各個字段填好值并送出給 Kubernetes 之後,Kubernetes 就會負責建立出這些對象所定義的容器或者其他類型的 API 資源。

Pod 就是 Kubernetes 世界裡的“應用”;而一個應用,可以由多個容器組成。

Deployment,是一個定義多副本應用(即多個副本 Pod)的對象,還負責在 Pod 定義發生變化時,對每個副本進行滾動更新。

Deployment 扮演的是 Pod 的控制器的角色。

Labels 是一組 key-value 格式的标簽。可以通過這個 Labels 字段從 Kubernetes 中過濾出它所關心的被控制對象。

使用指令建立,推薦使用apply

檢查

檢視一個API對象的細節

在 Kubernetes 執行的過程中,對 API 對象的所有重要操作,都會被記錄在這個對象的 Events 裡,并且顯示在 kubectl describe 指令傳回的結果中。

如果要變nginx版本,比如要對這個 Nginx 服務進行更新,把它的鏡像版本從 1.7.9 更新為 1.8

修改yaml檔案

使用指令生效,推薦使用apply

接下來,在這個 Deployment 中嘗試聲明一個 Volume。

将nginx-deployment.yaml檔案修改如下:

emptyDir:不顯式聲明主控端目錄的 Volume。Kubernetes 會在主控端上建立一個臨時目錄,這個目錄将來就會被綁定挂載到容器所聲明的 Volume 目錄上。

Pod 中的容器,使用的是 volumeMounts 字段來聲明自己要挂載哪個 Volume,并通過 mountPath 字段來定義容器内的 Volume 目錄,比如:/usr/share/nginx/html。

顯式聲明 Volume

執行指令更新pod

使用 kubectl describe 檢視一下最新的 Pod,會發現 Volume 的資訊已經出現在了 Container 描述部分

可以使用 kubectl exec 指令,進入到這個 Pod 當中(即容器的 Namespace 中)檢視這個 Volume 目錄:

删除Nginx Deployment,運作以下指令:

每個人都有潛在的能量,隻是很容易被習慣所掩蓋,被時間所迷離,被惰性所消磨~

上一篇: C#檔案操作

繼續閱讀