k8s發佈文件記錄

一、環境變量配置項node

apiVersion: v1 # api版本
kind: ConfigMap # 配置項
metadata:
  name: common-key-svc # 名字
  namespace: default # 命名空間
data:
  # 配置爲keyValue,做爲環境變量使用
  TESTKEY: testvalue

二、文件掛載配置項,日誌文件spring

apiVersion: v1 # api版本
kind: ConfigMap # 配置項
metadata:
  name: common-key-log # 名稱
  namespace: default # 命名空間
data:
  # 配置項值爲xml,用於掛載到文件目錄當整個配置文件使用
  logback-spring.xml: |-
    <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
            <!--輸出到logstash-->
            <appender name="LOG" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
                <destination>192.168.0.86:4560</destination>
                <!-- encoder必須配置,有多種可選 -->
                <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
                    <!-- "appname":"yang_test" 的做用是指定建立索引的名字時用,而且在生成的文檔中會多了這個字段  -->
                    <customFields>{"appname":"mokn-common-service-key"}</customFields>
                </encoder>
            </appender>
            <root level="INFO">
                <appender-ref ref="LOG"/>
            </root>
        </configuration>

三、發佈與服務api

# 部署定義
apiVersion: apps/v1 # api版本
kind: Deployment # k8s部署
metadata:
  name: mokn-common-service-key #名字
  namespace: default # 命名空間
# 規格
spec:
  # 副本數,Pod數
  replicas: 1
  # 選擇器
  selector:
    matchLabels:
      app: mokn-common-service-key
  template:
    metadata:
      labels:
        app: mokn-common-service-key # 標籤,用於服務selector
    spec:
      # 容器定義
      containers:
      - name: mokn-common-service-key # 容器名
        image: '100.125.0.31:20202/mk-develop/mokn-common-service-key:v9' # 鏡像地址
        ports:
        - name: http-port
          containerPort: 8080 # 容器端口
        # 環境變量
        env:
        - name: TESTKEY # 環境變量名,對應application.properties的配置key
          valueFrom:
            configMapKeyRef: # 來自於配置項
              name: common-key-svc # 配置項名稱
              key: TESTKEY # 配置項key
        # 文件掛載
        volumeMounts:
        - name: logback-config-volume # 掛載名稱,對應下面的volumes
          mountPath: /etc/mokn # 掛載到目錄,容器內部目錄
        # 健康檢查(容易啓動用,失敗一直重啓)
        livenessProbe:
          httpGet:
            path: /actuator/health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 120
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
        # 健康檢查(失敗則不加入Service)
        readinessProbe:
          httpGet:
            path: /actuator/health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 30
          timeoutSeconds: 3
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 3
      # 定義掛載
      volumes:
      - name: logback-config-volume # 名稱,與上面的mount對應
        configMap: # 掛載來自於配置項
          name: common-key-log # 配置項名稱
          items:
          - key: logback-spring.xml # key
            path: logback-spring.xml
  revisionHistoryLimit: 10 # 記錄更新版本數,用於回滾
---

# 服務定義
apiVersion: v1 # 使用版本
kind: Service # k8s服務
metadata:
  name: mokn-common-service-key # 名稱
  namespace: default # 命名空間
#規格定義
spec:
  ports:
  - name: http-port
    protocol: TCP # 協議
    port: 8080 # 集羣端口
    targetPort: 8080 # 容器端口
    nodePort: 30000 # 節點端口
  # 選取發佈,Pod
  selector:
    app: mokn-common-service-key
  type: NodePort # 端口類型(NodePort:節點映射,ClusterIP:集羣綁定,)
相關文章
相關標籤/搜索