1. 程式人生 > 其它 >k8s 平臺部署java網站專案

k8s 平臺部署java網站專案

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