K8S集群学习之路(三)
一、kubernetes 集群命令行工具 kubectl
kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能 够在集群上进行容器化应用的安装部署
1、kubectl 命令的语法
$ kubectl [command] [TYPE] [NAME] [flags]
(1) command:指定要对资源执行的操作,例如 create、get、describe 和 delete;
(2) TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的 形式。例如:
(3) NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源, 例如:
(4) flags:指定可选的参数。例如,可用-s 或者–server 参数指定 Kubernetes API server 的地址和端口。
例如 kubectl get node 节点名字
目前所用到的命令:
二、Yaml文件概述
k8s 集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也 就是可以把需要对资源对象操作编辑到 YAML 格式文件中,我们把这种文件叫做资源清单文 件,通过 kubectl 命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署
(1)基本语法
- 使用空格做为缩进
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
- 低版本缩进时不允许使用 Tab 键,只允许使用空格
- 使用#标识注释,从这个字符一直到行尾,都会被解释器忽略
(2)创建YAML文件
第一种:使用kubectl create方法创建
kubectl create deployment web --image=nginx -o yaml --dry-run > my1.yaml
第二种:使用kubectl get 方法导出yaml文件
三、pod概述
1、pod的基本概念
pod中所有容器的网络共享,Pod 是 Kubernetes 的最重要概念,每一个 Pod 都有一个特殊的被称为”根容器“的 Pause 容器。Pause 容器对应的镜 像属于 Kubernetes 平台的一部分,除了 Pause 容器,每个 Pod 还包含一个或多个紧密相关的用户业务容器
2、存在的意义
3、pod的实现机制
(1)共享网络
通过pause容器(也叫info容器),把所有业务容器加入到当中,使得namespace相同
(2)共享存储(数据卷)
引入数据卷的概念,实现共享存储
4、pod镜像拉取策略
5、pod的调度的时候进行资源限制
注:1000m=1核
6、pod的重启机制
7、pod健康检查
对于存活检查来说,使用exec命令判断返回值是否成功(0为成功,1为失败)
四、pod的调度策略
(1) 流程
apiserver相当于总控,当pod创建后会进入到apiserver中,然后发送到etcd,etcd处理完成回返单apiserver,之后scheduler发现apiserver中存在pod,把他调度到某个node节点上,最后由node节点的kubelet来寻找属于自己的pod
(2)pod调度的三种方法
第三种:利用节点亲和性
(3)污点和污点容忍
举例:某个服务器node节点加入了污点(比如是一定不会被调度),那么nodeSelector在分配pod的时候,pod就不会调度到那个节点上面去。加上污点容忍就没那么严格。
如果看完这篇文章对你们有所帮助,请点赞支持,谢谢大家