k8s 使用configmap存儲項目配置文件


1. 編寫配置文件yaml

  • 編寫configmap配置文件

    [root@k8s-master java-demo]# vim  configmap.yaml 
    [root@k8s-master java-demo]# cat configmap.yaml 
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: java-demo-config     # 應用卷的名字
    data:
        application.yml: |
            server:
              port: 8080
            spring:
              datasource:
                url: jdbc:mysql://121.4.77.138:3306/java_demo?characterEncoding=utf-8
                username: java_demo
                password: Aa@9953013
                driver-class-name: com.mysql.jdbc.Driver
              freemarker:
                allow-request-override: false
                cache: true
                check-template-location: true
                charset: UTF-8
                content-type: text/html; charset=utf-8
                expose-request-attributes: false
                expose-session-attributes: false
                expose-spring-macro-helpers: false
                suffix: .ftl
                template-loader-path:
                  - classpath:/templates/
    
  • 應用配置文件

    [root@k8s-master java-demo]# kubectl apply -f configmap.yaml 
    configmap/java-demo-config created
    

2. 把configmap里的配置文件,放到應用程序里面

  • 編寫應用配置文件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: /
            volumeMounts:
            - name: config       # 指定共享卷的名稱
              mountPath: "/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/application.yml"    # 指定掛載目錄下
              subPath: application.yml     # 指定文件名稱
          volumes:
          - name: config
            configMap:
              name: java-demo-config        # 指定configmap的卷名
              items:
              - key: "application.yml"      # 指定的configmap的data里的保存的文件名
                path: "application.yml"     # 指定configmap的data文件
    
    
  • 啟動配置文件

    [root@k8s-master java-demo]# kubectl apply -f java_demo.yaml 
    deployment.apps/java-demo configured
    
  • 查看應用

    [root@k8s-master java-demo]# kubectl get pods
    NAME                         READY   STATUS             RESTARTS   AGE
    java-demo-747ff448bd-tg79z   1/1     Running            0          31m
    java-demo-747ff448bd-xcn26   1/1     Running            0          31m
    java-demo-758759777d-xtqfq   0/1     CrashLoopBackOff   11         24m
    nginx-6799fc88d8-bvg8q       1/1     Running            0          2d
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM