k8s发布文件记录

1、环境变量配置项

apiVersion: v1 # api版本
kind: ConfigMap # 配置项
metadata:
  name: common-key-svc # 名字
  namespace: default # 命名空间
data:
  # 配置为keyValue,作为环境变量使用
  TESTKEY: testvalue

2、文件挂载配置项,日志文件

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>

3、发布与服务

# 部署定义
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:集群绑定,)
原文地址:https://www.cnblogs.com/assion/p/11269181.html