apiVersion: extensions/v1beta1 #指定api版本,此值必须在kubectl apiversion中
kind: Deployment #指定创建资源的角色/类型
metadata: #资源的元数据/属性
name: base #资源的名字,在同一个namespace中必须唯一
namespace: test # 指定命名空间
spec: # 指定该资源的内容
replicas: 1 # 创建pod个数
template:
metadata:
labels: # 标签
app: base
tier: backend
spec:
containers:
- name: base # 容器名称
image: base # 启动该容器的镜像
command: ["java"] #启动容器的运行命令,将覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINT
args: ["-Duser.timezone=GMT+08", "-Xms1500m","-Xmx1500m","-XX:NewRatio=3","-XX:SurvivorRatio=8", "-XX:PermSize=128M", "-XX:MaxPermSize=256m","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
resources: # 资源管理
requests: #容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
cpu: 100m #CPU资源(核数),两种方式,浮点数或者是整数+m,0.1=100m,最少值为0.001核(1m)
memory: 1Gi #内存使用量
limits: # 资源限制上限
cpu: 1000m
memory: 2Gi
volumeMounts: #详情请见https://jimmysong.io/kubernetes-handbook/concepts/volume.html
- name: app-logs #挂载设备的名字,与volumes[*].name 需要对应
mountPath: /usr/local/app_logs #挂载到容器的某个路径下
- name: kafka-msg
mountPath: /usr/xxtsrc/projfile/kafka_msg
# subPath: kafka_msg
env: #指定容器中的环境变量
- name: SPRING_APPLICATION_JSON #变量的名字
value: '{"spring.profiles.active": "dev", "x.kafka.consumer.enable": false, "x.scheduled.run.singleton.job": false}'
#- name: JAVA_OPTS
#value: -Xmx512m
ports:
- containerPort: 8080 #容器开发对外的端口
volumes: #定义一组挂载设备 详情请见https://jimmysong.io/kubernetes-handbook/concepts/volume.html
- name: app-logs #定义一个挂载设备的名字
hostPath:
path: /opt/logs #挂载设备类型为hostPath,路径为宿主机下的/opt/logs
- name: kafka-msg
persistentVolumeClaim: # 持久卷声明 是在用户不知道特定云环境的细节的情况下“声明”持久化存储(
claimName: kafka-msg
---
apiVersion: v1
kind: Service
metadata:
name: base
labels:
app: base
tier: backend
namespace: test
spec:
ports:
- port: 80 # 对外暴漏端口
targetPort: 8080 # 被映射端口
selector: # 标签选择器,与Deployment中labels对应
app: base
tier: backend
07-22
1888
02-20
990
05-11