共计 3947 个字符,预计需要花费 10 分钟才能阅读完成。
今天就跟大家聊聊有关如何解析 java web 项目,k8s 的 yaml 模板,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
apiVersion: apps/v1
kind: Deployment
metadata:
name: projectname-deployment
spec:
replicas: 1
### 更新: 容器准备完成之后, 延迟 60s, 配合 strategy.maxUnavailable: 0 时, 可以忽略 ###
#minReadySeconds: 60
###600s 之后如果还没有发布成功, 就打上标签, 不做任何操作, 必须大于 minReadySeconds###
#progressDeadlineSeconds: 600
strategy:
### 升级方式, 默认的方式 ###
type: RollingUpdate
### 严格控制, 每次升级一个 pod, 不可用状态为 0 个 pod###
rollingUpdate:
### 滚动升级时会先启动 1 个 pod###
maxSurge: 1
### 滚动升级时允许的最大不可用的 pod 个数 ###
maxUnavailable: 0
selector:
matchLabels:
app: projectname
template:
metadata:
annotations:
### 修改值, 用于 deployment 自动更新 ###
springrain.k8s.version: updateversion
### 禁用 istio 自动注入 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
### 设置 tomcat 可以使用的 cpu 和内存 ###
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 0.5
memory: 1Gi
### 设置 tomcat 的端口 ###
ports:
- containerPort: 8080
###
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPTS
###JDK8 以上的版本不要设置 -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap 这两个参数 ###
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
### 设置时区 ###
- name: TZ
value: Asia/Shanghai
### 设置编码 ###
- name: LC_ALL
value: C.UTF-8
- name: LANG
value: C.UTF-8
###### 健康状态检查 开始 ######
###kubernetes 认为该 pod 是存活的, 不存活则需要重启 ###
livenessProbe:
httpGet: ###HTTP 状态码在 200 和 399 之间, 则认为容器运转正常 ###
path: projectliveurl
port: 8080
scheme: HTTP
###
initialDelaySeconds: 120 ### 容器启动后第一次执行探测是需要等待多少秒 ###
timeoutSeconds: 5 ### 探测超时时间. 默认 1 秒,最小 1 秒 ###
successThreshold: 1 ### 探测失败后, 最少连续探测成功多少次才被认定为成功. 默认是 1. 对于 liveness 必须是 1. 最小值是 1.###
failureThreshold: 5 ### 探测成功后, 最少连续探测失败多少次才被认定为失败. 默认是 3. 最小值是 1.###
periodSeconds: 10 ### 执行探测的频率. 默认是 10 秒, 最小 1 秒.###
# 也可以用这种方法
#exec: 执行命令的方法进行监测,如果其退出码不为 0,则认为容器正常
# command:
# - cat
# - /tmp/health
# 也可以用这种方法
#tcpSocket: // 通过 tcpSocket 检查健康
# port: number
###kubernetes 认为该 pod 是启动成功的 ####
readinessProbe:
httpGet:
path: projectliveurl
port: 8080
scheme: HTTP
initialDelaySeconds: 100 ### 容器启动后第一次执行探测是需要等待多少秒 ###
timeoutSeconds: 5 ### 探测超时时间. 默认 1 秒,最小 1 秒 ###
successThreshold: 1 ### 探测失败后, 最少连续探测成功多少次才被认定为成功. 默认是 1. 对于 liveness 必须是 1. 最小值是 1.###
failureThreshold: 5 ### 探测成功后, 最少连续探测失败多少次才被认定为失败. 默认是 3. 最小值是 1.###
periodSeconds: 10 ### 执行探测的频率. 默认是 10 秒, 最小 1 秒.###
###### 健康状态检查 结束 ######
volumeMounts:
### 挂载点 ###
- mountPath: /usr/local/tomcat/logs
### 对应下面卷 cephfs-pvc-pod 的名称 ###
name: tomcat-pvc
### 指定子目录, 会在 cephfs 里创建子文件夹 ####
subPath: data/dev/tomcat/projectname/logs
#### 应用上传的 upload 文件夹 ###
- mountPath: /usr/local/tomcat/webapps/projectname/upload
name: tomcat-pvc
### 指定子目录, 会在 cephfs 里创建子文件夹 ####
subPath: data/dev/tomcat/projectname/upload
### 使用 configMap 挂载 server.xml, 只挂载一个文件, 需要使用 subPath###
#- mountPath: /usr/local/tomcat/conf/server.xml
# name: serverxml-cm
### 和下面的 volumes.tomcat-configmap 的 path 要对应要对应 ###
# subPath: serverxmlsubpath
- mountPath: /usr/local/tomcat/conf
name: tomcat-pvc
### 和下面的 volumes.tomcat-configmap 的 path 要对应要对应 ###
subPath: basesoft/tomcat-k8s/conf
volumes:
### 卷名称, 对应上面的挂载名称 ###
- name: tomcat-pvc
persistentVolumeClaim:
### 对应 cephfs-pvc.yaml 的 metadata.name###
claimName: k8s-pvc
#- name: serverxml-cm
# configMap:
### 关联 configMap###
#name: tomcat-configmap
#items:
#- key: server.xml
#path: serverxmlsubpath
### 创建 projectname 服务 ####
apiVersion: v1
kind: Service
metadata:
name: projectname
labels:
app: projectname
spec:
ports:
- port: 8080
targetPort: 8080
nodePort: projectport ###node 的端口, 用于开发人员直接访问 ###
##protocol: http ### SCTP , TCP , UDP ###
name: http
### 使用 NodePort 方式, 不使用固定虚拟 IP###
#clusterIP: 10.98.239.104
selector:
app: projectname
### 节点类型是 NodePort###
type: NodePort
看完上述内容,你们对如何解析 java web 项目,k8s 的 yaml 模板有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。
正文完
发表至: 计算机运维
2023-08-16