一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,点击查看活动详情。
继续上一章节,学习如何运行一个k8s应用资源
Deployment配置文件简介
①apiVersion是当前配置文件的版本。
②kind是要创建的资源类型,这里是Deployment。
③metadata是资源的元数据,name是必需的元数据项。
④spec部分是该Deployment的规格说明。
⑤replicas指明副本数量,这里默认为1。
⑥template定义Pod的模板,这是配置文件的重要部分。
⑦metadata定义Pod的元数据,至少要定义一个label。label的key和value可以任意指定。
⑧spec描述Pod的规格,此部分定义Pod中每一个容器的属性,name和image是必需的。
经过yaml配置文件部署后,Deployment、ReplicaSet、Pod都已经就绪
如果要删除这些资源
执行
kubectl delete deployment nginx-deployment
或者
kubectl delete -f nginx.yml
伸缩
修改nginx.yml文件,spec-replicas
再次执行kubectl apply
去污点
由于安全因素的原因,k8s默认配置下不会将Pod调度到Master节点。如果我们的服务器资源不足,希望将k8s-master也用来当作Node使用,可以执行如下命令:
kubectl taint node k8s-master node-role.kubernetes.io/master-
恢复Master Only状态,执行命令
kubectl taint node k8s-master node-role.kubernetes.io/master="":NoSchedule
用label控制Pod的位置
默认配置下,Scheduler调度器会将Pod调度到所有可用的Node
kubectl get nodes --show-labels
kubectl label nodes node02 com=qingteng
nodeSelector:
com: qingteng
kubectl label nodes node02 com-
删除标签后,除非在nginx.yml配置文件中删除nodeSelector设置,然后通过kubectl apply命令重新部署,否则pod不会重新部署
总结
本章节和前一章节,主要是熟悉创建资源的两种方式kubectl run和kubectl apply、以及yaml配置文件的内容具体含义,了解如何使用配置文件进行调度,如何去除污点、以及伸缩服务的数量,从而达到资源的有效利用