一、资源清单
二、实验步骤
1.设置环境
删除之前的pod配置
删除完成
2.生成清单
设置使yaml文件自动缩进
编写yaml文件
格式如下:
apiVersion: group/version //指明api资源属于哪个群组和版本,同一个组可以有多个版本
$ kubectl api-versions //查询命令
kind: //标记创建的资源类型,k8s主要支持以下资源类别
Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob
metadata: //元数据
name: //对像名称
namespace: //对象属于哪个命名空间
labels: //指定资源标签,标签是一种键值数据
spec: //定义目标资源的期望状态
$ kubectl explain pod //查询帮助文档
利用该资源清单创建pod应用:
删除pod应用:
资源清单创建多个pod应用:
用-c指定连接pod中的哪个容器
例如给pod编辑端口映射:
查看pod状态
在server4上查看该端口:
此时访问server4的时候,会重定向到server4的pod中
3.自主式Pod资源清单
$ vim demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: demo
labels:
app: demo
spec:
containers:
- name: ubuntu
image: ubuntu
command: ["/bin/sh", "-c", "sleep 3600"]
- name: nginx
image: nginx
$ kubectl create -f demo.yaml
4.标签
$ kubectl get pod --show-labels //查看标签
NAME READY STATUS RESTARTS AGE LABELS
demo 2/2 Running 0 8s app=demo
$ kubectl get pod -l app //过滤包含app的标签
NAME READY STATUS RESTARTS AGE
demo 2/2 Running 0 34s
$ kubectl get pod -L app
NAME READY STATUS RESTARTS AGE APP
demo 2/2 Running 0 39s demo
$ kubectl label pod demo version=v1 //打标签
pod/demo labeled
$ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
demo 2/2 Running 0 4m1s app=demo,version=v1
$ kubectl label pod demo app=nginx --overwrite //更改标签
pod/demo labeled
$ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS
demo 2/2 Running 0 5m40s app=nginx,version=v1
5.节点标签选择器
$ kubectl label nodes server2 disktype=ssd
node/server2 labeled
$ kubectl get nodes -l disktype
NAME STATUS ROLES AGE VERSION
server2 Ready <none> 6d v1.17.2
在yaml文件中增加标签选择器
$ kubectl delete -f demo.yml
pod "demo" deleted
$ kubectl create -f demo.yaml
pod/demo created
$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
demo 2/2 Running 0 2m16s 10.244.1.44 server2