k8s的yaml相关指令以及操作案例
Posted 爱上口袋的天空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s的yaml相关指令以及操作案例相关的知识,希望对你有一定的参考价值。
1.required属性指令,必须存在的属性【创建资源清单的时候没有这些属性的存在它是不允许被执行的】
2.optional,主要属性【这些属性比较重要,如果不指定的话系统会自动补充默认值】
3.other,额外的的一些属性。
4.查看资源有那些资源清单属性,使用以下命令
# 查询所有的资源清单资源
kubectl explain pod# 查看属性说明
kubectl explain pod.apiVersion
5.下面我们定义一个deployment基于上传到harbor上的镜像
- 我们在/opt目录下定义一个myapp-deployment.yml,内容如下
#这个是我们的版本信息 apiVersion: apps/v1 #这个表示资源类型我们创建的是deployment kind: Deployment metadata: #这个里面定义的是deployment中我们创建的对象信息 #对象名称 name: myapp-deploy #元数据名称空间 namespace: default # 第一段: 用来描述Deployment对象。 spec: #这个是对详细对象的定义 # 告知副本控制器ReplicaSet维护3个副本 replicas: 3 #通过标签选择器去维护pod selector: matchLabels: #用来匹配pod名称为myapp app: myapp #匹配版本类型是stable的pod release: stabel # 第二段:给ReplicaSet来使用的。 template: #template下面是用来描述pod的 #定义pod元数据信息 metadata: labels: #为我们的pod打个标签和上面的selector匹配的标签保持一致 app: myapp release: stabel env: test spec: #对pod进行详细的定义 containers: #在这里定义容器信息 #容器的名称 - name: myapp #定义我们要用到的镜像名称 image: hub.harbor.com/library/myapp:v1 #定义镜像的拉取策略 imagePullPolicy: IfNotPresent ports: #指定容器需要用到的端口列表 #指定端口名称 - name: http #指定容器需要监听的端口号 containerPort: 80 # 第三段:描述pod
- 使用命令执行我们的yaml文件
命令:kubectl create -f myapp-deployment.yaml- 我们使用curl测试一下
- 上面的案例现在是不能对外网提供服务的,因为我们现在没有创建service,那么下面我们用yaml文件再创建一个service
在/opt目录下创建一个myapp-svc.yaml文件
内容如下:#service版本 apiVersion: v1 #这个表示资源类型我们创建的是Service kind: Service metadata: #这个里面定义的是Service中我们创建的对象信息 #对象名称 name: myweb #元数据名称空间 namespace: default spec: #下面定义service的详细信息 #类型为NodePort type: NodePort selector: #通过标签选择器去查询对应版本的pod,最后组成一个service app: myapp release: stabel ports: #指定容器需要用到的端口列表 #指定端口名称 - name: http #服务对外的端口 port: 80 #容器的端口 targetPort: 80
- 下面通过命令运行yaml脚本
命令:kubectl apply -f myapp-svc.yaml- 下面我们通过外网访问一下
以上是关于k8s的yaml相关指令以及操作案例的主要内容,如果未能解决你的问题,请参考以下文章