【k8s】k8s的yaml文件解释,如何部署一个java.jar包
这个配置文件实现了在命名空间sjbz中创建一个名为java的Deployment和Service。Deployment使用标签选择器控制一个副本具有app: java的Pod,并在具有`name: "node-2。
·
前言:
k8s的yaml文件解释,如何部署一个java,jar包
YAML语法格式:
- 大小写敏感;
- 使用缩进表示层级关系;不支持Tab键制表符缩进,只使用空格缩进;
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可,通常开头缩进两个空格;
- 字符后缩进一个空格,如冒号,逗号,短横杆(-) 等
- “—” 表示YAML格式,一个文件的开始,用于分隔文件; 可以将创建多个资源写在同一个 yaml 文件中,用 —
隔开,就不用写多个 yaml 文件了。 - "#” 表示注释;
一、具体的yaml
1.常用字段说明
apiVersion #API版本
kind #资源类型
metadata #资源元数据
spec #资源规格
replicas #副本数量
selector #标签选择器
template #pod模板
metadata #pod元数据
sepc #pod规格
containers #容器配置
2.详细的yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: java
namespace: sjbz
spec:
selector:
matchLabels:
app: java
replicas: 1
template:
metadata:
labels:
app: java
spec:
nodeSelector:
name: "node-2"
containers:
- name: java
image: user-center:sjbz
env:
- name: TZ
value: Asia/Shanghai
imagePullPolicy: Never
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: java
namespace: sjbz
spec:
selector:
app: java
ports:
- protocol: TCP
port: 8080
targetPort: 8080
nodePort: 3314
type: NodePort
二、具体解释
2.Deployment解释:
apiVersion: apps/v1 #指定使用的Kubernetes API版本,用于Deployment
kind: Deployment #定义资源类型为Deployment
metadata: #元数据部分,包含Deployment的名称和所属命名空间
name: java #定义Pod名称,在同一个namespace空间中必须是唯一的
namespace: sjbz #Pod所属的命名空间
spec: #规定Deployment的规范
selector: #选择器用于标识此Deployment控制的Pod
matchLabels: #匹配标签的条件,此处为app: java
app: java #匹配上面的标签
replicas: 1: #指定要创建的Pod副本数
template: #定义创建Pod的模板
metadata: #模板的元数据
labels: #Pod的标签,此处为app: java
app: java #匹配上面的标签,需与上面的标签定义的app保持一致
spec: #定义Pod的规范
nodeSelector: #Node选择器,使用标签来选择具体的Node
name: "node-2" #选择具有name: "node-2"标签的Node作为Pod的调度目标
containers: #容器列表
- name: java #容器的名称
image: user-center:sjbz #使用的镜像
env: #环境变量列表
- name: TZ #环境变量的名称
value: Asia/Shanghai #环境变量的值,设置时区为亚洲/上海
imagePullPolicy: Never #指定不从远程仓库拉取镜像,而是使用本地已有镜像
ports: #容器暴露的端口列表
- containerPort: 8080 #容器监听的端口号
2.Service的部分解释:
apiVersion: v1 #必选,指定使用的Kubernetes API版本,用于Service
kind: Service #必选,定义资源类型为Service
metadata: #必选,元数据部分,包含Service的名称和所属命名空间
name: java
namespace: sjbz
spec: #规定Service的规范
selector: #选择器用于标识此Service关联的Pod
app: java: #匹配标签的条件,与Deployment中的标签匹配
ports: #定义Service暴露的端口
- protocol: #TCP:端口协议为TCP
port: 8080 #Service监听的端口号
targetPort: 8080 #指定转发请求到Pod的哪个端口
nodePort: 3314 #如果Service的类型为NodePort,则会将请求转发到节点上的该端口
type: NodePort #Service的类型为NodePort,允许通过节点的IP和指定的端口访问Service
总结
这个配置文件实现了在命名空间sjbz中创建一个名为java的Deployment和Service。Deployment使用标签选择器控制一个副本具有app: java的Pod,并在具有`name: "node-2
更多推荐
已为社区贡献6条内容
所有评论(0)