共計(jì) 3947 個(gè)字符,預(yù)計(jì)需要花費(fèi) 10 分鐘才能閱讀完成。
今天就跟大家聊聊有關(guān)如何解析 java web 項(xiàng)目,k8s 的 yaml 模板,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
apiVersion: apps/v1
kind: Deployment
metadata:
name: projectname-deployment
spec:
replicas: 1
### 更新: 容器準(zhǔn)備完成之后, 延遲 60s, 配合 strategy.maxUnavailable: 0 時(shí), 可以忽略 ###
#minReadySeconds: 60
###600s 之后如果還沒(méi)有發(fā)布成功, 就打上標(biāo)簽, 不做任何操作, 必須大于 minReadySeconds###
#progressDeadlineSeconds: 600
strategy:
### 升級(jí)方式, 默認(rèn)的方式 ###
type: RollingUpdate
### 嚴(yán)格控制, 每次升級(jí)一個(gè) pod, 不可用狀態(tài)為 0 個(gè) pod###
rollingUpdate:
### 滾動(dòng)升級(jí)時(shí)會(huì)先啟動(dòng) 1 個(gè) pod###
maxSurge: 1
### 滾動(dòng)升級(jí)時(shí)允許的最大不可用的 pod 個(gè)數(shù) ###
maxUnavailable: 0
selector:
matchLabels:
app: projectname
template:
metadata:
annotations:
### 修改值, 用于 deployment 自動(dòng)更新 ###
springrain.k8s.version: updateversion
### 禁用 istio 自動(dòng)注入 sidecar###
#sidecar.istio.io/inject: false
labels:
app: projectname
version: v1
spec:
containers:
- name: projectname
image: 10.98.239.102:5000/projectname:randomversion
#image: projectname:randomversion
### 設(shè)置 tomcat 可以使用的 cpu 和內(nèi)存 ###
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 0.5
memory: 1Gi
### 設(shè)置 tomcat 的端口 ###
ports:
- containerPort: 8080
###
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPTS
###JDK8 以上的版本不要設(shè)置 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap 這兩個(gè)參數(shù) ###
value: -Dfile.encoding=utf-8 -Dsun.jnu.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom
###value: -Xms1000m -Xmx2000m -Dfile.encoding=utf-8 -Dsun.jnu.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap
### 設(shè)置時(shí)區(qū) ###
- name: TZ
value: Asia/Shanghai
### 設(shè)置編碼 ###
- name: LC_ALL
value: C.UTF-8
- name: LANG
value: C.UTF-8
###### 健康狀態(tài)檢查 開(kāi)始 ######
###kubernetes 認(rèn)為該 pod 是存活的, 不存活則需要重啟 ###
livenessProbe:
httpGet: ###HTTP 狀態(tài)碼在 200 和 399 之間, 則認(rèn)為容器運(yùn)轉(zhuǎn)正常 ###
path: projectliveurl
port: 8080
scheme: HTTP
###
initialDelaySeconds: 120 ### 容器啟動(dòng)后第一次執(zhí)行探測(cè)是需要等待多少秒 ###
timeoutSeconds: 5 ### 探測(cè)超時(shí)時(shí)間. 默認(rèn) 1 秒,最小 1 秒 ###
successThreshold: 1 ### 探測(cè)失敗后, 最少連續(xù)探測(cè)成功多少次才被認(rèn)定為成功. 默認(rèn)是 1. 對(duì)于 liveness 必須是 1. 最小值是 1.###
failureThreshold: 5 ### 探測(cè)成功后, 最少連續(xù)探測(cè)失敗多少次才被認(rèn)定為失敗. 默認(rèn)是 3. 最小值是 1.###
periodSeconds: 10 ### 執(zhí)行探測(cè)的頻率. 默認(rèn)是 10 秒, 最小 1 秒.###
# 也可以用這種方法
#exec: 執(zhí)行命令的方法進(jìn)行監(jiān)測(cè),如果其退出碼不為 0,則認(rèn)為容器正常
# command:
# - cat
# - /tmp/health
# 也可以用這種方法
#tcpSocket: // 通過(guò) tcpSocket 檢查健康
# port: number
###kubernetes 認(rèn)為該 pod 是啟動(dòng)成功的 ####
readinessProbe:
httpGet:
path: projectliveurl
port: 8080
scheme: HTTP
initialDelaySeconds: 100 ### 容器啟動(dòng)后第一次執(zhí)行探測(cè)是需要等待多少秒 ###
timeoutSeconds: 5 ### 探測(cè)超時(shí)時(shí)間. 默認(rèn) 1 秒,最小 1 秒 ###
successThreshold: 1 ### 探測(cè)失敗后, 最少連續(xù)探測(cè)成功多少次才被認(rèn)定為成功. 默認(rèn)是 1. 對(duì)于 liveness 必須是 1. 最小值是 1.###
failureThreshold: 5 ### 探測(cè)成功后, 最少連續(xù)探測(cè)失敗多少次才被認(rèn)定為失敗. 默認(rèn)是 3. 最小值是 1.###
periodSeconds: 10 ### 執(zhí)行探測(cè)的頻率. 默認(rèn)是 10 秒, 最小 1 秒.###
###### 健康狀態(tài)檢查 結(jié)束 ######
volumeMounts:
### 掛載點(diǎn) ###
- mountPath: /usr/local/tomcat/logs
### 對(duì)應(yīng)下面卷 cephfs-pvc-pod 的名稱 ###
name: tomcat-pvc
### 指定子目錄, 會(huì)在 cephfs 里創(chuàng)建子文件夾 ####
subPath: data/dev/tomcat/projectname/logs
#### 應(yīng)用上傳的 upload 文件夾 ###
- mountPath: /usr/local/tomcat/webapps/projectname/upload
name: tomcat-pvc
### 指定子目錄, 會(huì)在 cephfs 里創(chuàng)建子文件夾 ####
subPath: data/dev/tomcat/projectname/upload
### 使用 configMap 掛載 server.xml, 只掛載一個(gè)文件, 需要使用 subPath###
#- mountPath: /usr/local/tomcat/conf/server.xml
# name: serverxml-cm
### 和下面的 volumes.tomcat-configmap 的 path 要對(duì)應(yīng)要對(duì)應(yīng) ###
# subPath: serverxmlsubpath
- mountPath: /usr/local/tomcat/conf
name: tomcat-pvc
### 和下面的 volumes.tomcat-configmap 的 path 要對(duì)應(yīng)要對(duì)應(yīng) ###
subPath: basesoft/tomcat-k8s/conf
volumes:
### 卷名稱, 對(duì)應(yīng)上面的掛載名稱 ###
- name: tomcat-pvc
persistentVolumeClaim:
### 對(duì)應(yīng) cephfs-pvc.yaml 的 metadata.name###
claimName: k8s-pvc
#- name: serverxml-cm
# configMap:
### 關(guān)聯(lián) configMap###
#name: tomcat-configmap
#items:
#- key: server.xml
#path: serverxmlsubpath
### 創(chuàng)建 projectname 服務(wù) ####
apiVersion: v1
kind: Service
metadata:
name: projectname
labels:
app: projectname
spec:
ports:
- port: 8080
targetPort: 8080
nodePort: projectport ###node 的端口, 用于開(kāi)發(fā)人員直接訪問(wèn) ###
##protocol: http ### SCTP , TCP , UDP ###
name: http
### 使用 NodePort 方式, 不使用固定虛擬 IP###
#clusterIP: 10.98.239.104
selector:
app: projectname
### 節(jié)點(diǎn)類型是 NodePort###
type: NodePort
看完上述內(nèi)容,你們對(duì)如何解析 java web 項(xiàng)目,k8s 的 yaml 模板有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝大家的支持。
正文完
發(fā)表至: 計(jì)算機(jī)運(yùn)維
2023-08-16