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:集群绑定,)