k8s 平臺部署java網站專案
阿新 • • 發佈:2021-11-10
1. 使用控制器部署映象
2. 案例
2.1 將映象倉庫認證憑據儲存在k8s secret 中
[root@k8s-master ~]# kubectl create secret docker-registry harbor-auth --docker-username=admin --docker-password=12345678 --docker-server=harbor.scajy.org
secret/harbor-auth created
2.2 在yaml中使用這個認證憑據
imagePullSecrets:
- name: harbor-auth
2.3 創java-demo目錄
[root@k8s-master ~]# cd yaml/
[root@k8s-master yaml]# ll
總用量 0
drwxr-xr-x. 2 root root 76 12月 8 15:31 ingress
[root@k8s-master yaml]# mkdir -p java-demo
[root@k8s-master yaml]# cd java-demo/
2.4 編寫k8s 釋出的yaml配置檔案
[root@k8s-master java-demo]# vim java_demo.yaml [root@k8s-master java-demo]# cat java_demo.yaml apiVersion: apps/v1 kind: Deployment metadata: name: java-demo namespace: default labels: app: java-demo annotations: # 記錄回滾引數 kubernetes.io/change-cause: "java-demo:v1" #記錄到revision中的內容,記錄版本號 spec: replicas: 3 # Pod副本預期數量 revisionHistoryLimit: 10 # RS歷史版本儲存數量 selector: matchLabels: app: java-demo strategy: rollingUpdate: maxSurge: 25% # 滾動更新過程最大pod副本數 maxUnavailable: 25% # 滾動更新過程中最大不可用pod副本數, type: RollingUpdate template: metadata: labels: app: java-demo # Pod副本的標籤 spec: imagePullSecrets: - name: harbor-auth containers: - name: java-demo image: harbor.scajy.org/scajy/java:v1 # 獲取容器 ports: - containerPort: 8080 resources: requests: # 啟動容器最小資源 memory: "256Mi" cpu: "500m" limits: # 容器的最大資源限制 memory: "512Mi" # 容器的最大資源記憶體限制128M cpu: "1000m" # 容器的最大資源cpu的核數限制,500m=0.5核數 readinessProbe: # 存活檢查,如果失敗,將殺死容器,來重啟 httpGet: port: 8080 path: / initialDelaySeconds: 20 #啟動容器後多少秒健康檢查 periodSeconds: 20 #以後間隔多少秒檢查一次 livenessProbe: # 就緒檢查,失敗就會剔除 service httpGet: port: 8080 path: /
2.5 啟動服務
[root@k8s-master java-demo]# kubectl apply -f java_demo.yaml
deployment.apps/java-demo created
2.6 檢查服務是否啟動
[root@k8s-master java-demo]# kubectl get pods NAME READY STATUS RESTARTS AGE java-demo-67866dbff6-ckkhd 1/1 Running 0 28m java-demo-67866dbff6-gvkt6 1/1 Running 0 28m java-demo-67866dbff6-mgd8p 1/1 Running 0 28m nginx-6799fc88d8-bvg8q 1/1 Running 0 39h