一、環境變量配置項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:集羣綁定,)