如何解析java web项目,k8s的yaml模板

55次阅读
没有评论

共计 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发表,共计3947字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)