感測器基於無線通訊的遠端管理方案
阿新 • • 發佈:2022-05-31
1.pv學習mysql-pv.yaml apiVersion: v1 kind: PersistentVolume #申明資源是pv metadata: name: pv-mysql-datadir #pv名稱 labels: pv: mysql-datadir #pv標籤,pvc關聯的名稱 spec: capacity: storage: 20Gi #儲存大小 accessModes: - ReadWriteMany #目錄許可權,可以以讀寫的方式被多個node掛載 persistentVolumeReclaimPolicy: Retain #pv回收策略,Retain保留,delete刪除 hostPath: path:/data/aibox-common/mysql/datadir #掛載的宿主機目錄,或者是nfs的目錄 --- #分隔符,可以在此下邊寫另一個pv,一個yaml檔案,多個pv 2.pvc學習mysql-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-mysql-datadir #申明資源是pvc spec: accessModes: - ReadWriteMany #pvc許可權,可以以讀寫的方式被多個pod掛載 resources: requests: storage: 20Gi #儲存大小 selector: matchLabels: pv: mysql-datadir #pvc關聯pv的標籤 --- #分隔符,可以在此下邊寫另一個pvc,一個yaml檔案,多個pvc
3.configMap學習
#建立一個名為mysql-conf的configmap物件,以檔案方式建立
kubectl create cm mysql-conf --from-file=/data/aibox-common/mysql/config/my.cnf
#以目錄方式建立
kubectl create cm cm-config --from-file=/data/aibox-common/cm-server/config
4.svc和deployment控制器學習mysql-deployment.yaml apiVersion: v1 kind: Service #申明資源是svc metadata: name: mysql-svc #svc名稱 labels: app: mysql #svc標籤 spec: type: NodePort #配置為NodePort,外部可以訪問 ports: - port: 23306 #容器間,服務呼叫的埠 targetPort: 23306 #容器暴露的埠,與Dockerfile暴露埠保持一致 nodePort: 23306 #NodePort,外部訪問的埠,宿主機開啟的埠 selector: app: mysql #標籤選擇器 --- apiVersion: apps kind: Deployment #申明資源是deployment metadata: name: mysql-d #控制器的名稱,deployment此名稱加隨機數字,statefulset是此名稱加從0開始順序數字 spec: replicas: 1 #複製副本1 selector: matchLabels: app: mysql #篩選的選擇器,如尋找mysql的pvc template: metadata: labels: app: mysql #標籤選擇器,給pod定義的標籤 spec: nodeName: k8s-master01 #申明node主機名hostname containers: #容器資訊 - name: mysql #容器名稱 image: 172.16.4.17:8090/public/mysql:5.7.29 #容器映象 imagePullPolicy: IfNotPresent #Always總是拉取映象 ifNotPresent本地有則使用本地映象,不拉取 Never 只使用本地映象,從不拉取,即使本地沒有 ports: - containerPort: 23306 #容器埠 name: myport env: #環境變數 - name: MYSQL_ROOT_PASSWORD #mysql密碼 value: "ytx@1234" resources: requests: memory: 3Gi #執行pod具備的條件,軟限制 limits: memory: 6Gi #最多可以使用多少資源,硬限制 volumeMounts: - name: my mountPath: /var/lib/mysql #容器目錄 - name: localtime mountPath: /etc/localtime #容器目錄 readOnly: true #只讀許可權 - name: config-volume mountPath: /etc/mysql/my.cnf #容器目錄 subPath: my.cnf #不加的話,覆蓋/etc/mysql整個目錄,加上的話只覆蓋對應的檔案 volumes: - name: my persistentVolumeClaim: claimName: pvc-mysql-datadir #掛在到pvc名稱 - name: localtime hostPath: path: /etc/localtime #將宿主機的/etc/localtime對映到pod type: "" - name: config-volume configMap: name: mysql-conf #configMap名稱 restartPolicy: Always #pod啟動策略,總是重啟 ---
5.上邊就是全部內容,可以根據實際情況修改對應的值,然後就是按照順序啟動就可以了,啟動yaml檔案命令,kubectl apply -f *.yaml