kubernetes——yaml

一、使用yaml文件创建资源

1、创建yaml文件

[root@master1 ~]# cd /opt/

[root@master1 opt]# vim nginx-deployment.yaml

apiVersion: apps/v1 #APIVersion:版本标签
kind: Deployment #控制器名称
metadata: #资源的元数据
name: nginx-deployment #定义资源的名称,在同一个namesapce必须是唯一
labels: #定义资源的标签
app: nginx
spec: #定义容器的属性
replicas: 3 #定义副本数量
selector: #选择器
matchLabels: #匹配标签
app: nginx #匹配模板名称
template: #模板
metadata:
labels:
app: nginx
spec:
containers: #定义容器
- name: nginx #容器名,要与前面模板要一致
image: nginx:1.15.4 #容器镜像以及版本
ports:
- containerPort: 80 #容器对外暴露的端口

2、使用yaml文件创建资源

[root@master1 opt]# kubectl create -f nginx-deployment.yaml

#查看状态

[root@master1 opt]# kubectl get pods -o wide

NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
nginx-deployment-d55b94fd-qfrrv 1/1 Running 0 7m12s 172.17.68.3 192.168.200.13
nginx-deployment-d55b94fd-t2dxj 1/1 Running 0 7m12s 172.17.36.3 192.168.200.12
nginx-deployment-d55b94fd-zbc9c 1/1 Running 0 7m12s 172.17.36.2 192.168.200.12

在这里插入图片描述

3、发布服务

#需要将端口暴露给外网

#创建一个yaml文件

[root@master1 opt]# vim nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
selector:
app: nginx

#启动服务

[root@master1 opt]# kubectl create -f nginx-service.yaml

#查看信息

[root@master1 opt]# kubectl get pods,svc -o wide

在这里插入图片描述

二、详解port

port:port是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个service

nodePort:nodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service

targetPort:targetPort是pod的端口,从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上,最后进入容器

containerPort:containerPort是pod内部容器的端口,targetPort映射到containerPort

在这里插入图片描述

三、yaml帮助命令

1、测试命令

#用来检查语法是否有错

–dry-run

[root@master1 opt]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run

在这里插入图片描述

2、生成yaml格式

[root@master1 opt]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml

在这里插入图片描述

3、生成json格式

[root@master1 opt]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json

在这里插入图片描述

4、将现有资源生成模板并导出

[root@master1 opt]# kubectl get deployment.apps/nginx-deployment --export -o yaml > my-nginx.yaml

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值