k8s_使用k8s部署部落格系統deployment(四)
阿新 • • 發佈:2021-10-05
k8s deployment
mysql deployment
前面的nfs pv pvc secret configmap service等k8s物件已經建立好了,準備工作已經完成;現在可以開始準備deployment配置檔案了。
下面是wordpress系統中mysql的deployment配置檔案,需要註釋的地方有詳細的註解。
#api版本 apiVersion: apps/v1 kind: Deployment metadata: #deployment的名稱 name: wordpress-mysql #mysql deployment本身的label labels: app: wordpress tier: mysql spec: selector: #deployment選擇有下面兩個標籤的pod配置資訊進行部署 matchLabels: app: wordpress tier: mysql-pod strategy: #配置deployment的升級方式 type: Recreate #pod的配置資訊 template: metadata: #pod的label,與上面selector配置項的label對應 labels: app: wordpress tier: mysql-pod spec: #pod內container相關配置資訊 containers: #container使用的映象資訊- image: mysql:5.7 #container名稱 name: mysql #container使用的一些引數配置 env: #MYSQL_ROOT_PASSWORD引數配置資訊,這些引數在映象說明文件裡會有介紹 - name: MYSQL_ROOT_PASSWORD valueFrom: #從名稱為mysql-pass的secret物件讀取password這個key對應的value資訊,將其作為MYSQL_ROOT_PASSWORD的值傳給container. secretKeyRef: #找到mysql-pass name: mysql-pass key: password - name: MYSQL_DATABASE valueFrom: #從名稱為mysql-config的configmap物件讀取key為db-name的值,將其作為MYSQL_DATABASE的值傳給container configMapKeyRef: #找到mysql-config name: mysql-config key: db-name #這裡對ports進行命名,具體對映container埠到clusterip在service配置檔案的selector已經選中這個pod進行映射了 ports: - containerPort: 3306 name: mysql #資料持久化資訊 volumeMounts: #使用名稱為mysql-persistent-storage的volumes配置進行資料持久化 - name: mysql-persistent-storage #container中需要進行資料持久化的路徑 mountPath: /var/lib/mysql #持久化儲存配置 volumes: #配置名,與上面volumeMounts中的name對應 - name: mysql-persistent-storage #使用哪個pvc進行資料持久化,之前已經進行了pv和pvc的配置了,這裡直接使用 persistentVolumeClaim: claimName: mysql-pv-claim
wordpress deployment
wordpress deployment檔案基本和mysql deployment配置檔案類似,下面只對不相同的地方進行詳細註釋。
apiVersion: apps/v1 kind: Deployment metadata: name: wordpress labels: app: wordpress tier: frontend spec: selector: matchLabels: app: wordpress tier: frontend-pod strategy: type: Recreate #升級方式 還有rollingUpdate template: metadata: labels: app: wordpress tier: frontend-pod spec: containers: - image: wordpress name: wordpress env: - name: WORDPRESS_DB_HOST #這裡是將名稱為mysql的service的ip傳給container的WORDPRESS_DB_HOST變數。env沒有配置valuefrom就是從service獲取對應的配置 value: mysql - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: #mysql 密碼,通過指定secret資源物件的name和物件的key來獲取 name: mysql-pass key: password - name: WORDPRESS_DB_USER valueFrom: configMapKeyRef: #mysql 密碼,通過指定secret資源物件的name和物件的key來獲取 name: mysql-config key: dbuser ports: - containerPort: 80 name: wordpress volumeMounts: - name: wordpress-persistent-storage mountPath: /var/www/html volumes: - name: wordpress-persistent-storage persistentVolumeClaim: claimName: wordpress-pv-claim