Kuebernetes资源控制管理
本章资源请访问:
https://download.youkuaiyun.com/download/weixin_54373617/18519880
案例概述
案例前置知识点
Kubectl 命令工具
Kubernetes 通过 kube-apiserver 成为整个 Kubernetes 集群管理的入口。API Server 是 Kubernetes 集群的主管理节点,用户通过 API Server 配置和组织集群,同时集群中各节点与 Etcd 存储的交互也是通过 API Server 来进行的。
API Server 实现了一套 RESTfull 的接口,用户可以直接使用 API 与 API Server 进行交互。另外官方还提供了一个客户端 Kubectl 工具集打包,可直接通过 Kubectl 以命令行的方式与集群进行交互。
kubectl 命令行的语法如下所示。
kubectl 的子命令非常丰富,涵盖了对 Kubernetes 集群的主要操作,包括资源对象的创建、删除、查看、修改、配置、运行等操作。详细的子命令如下表所示。
资源清单
Kubernetes 中所有的内容都被抽象为资源,资源实例化之后称之为对象。资源分为以下几种类型。
(1)名称空间级别
名称空间级别是仅在此名称空间下生效。例如:Kubernetes 的系统组件默认放在kube-system 名称空间下,而 kubectl get pod 等价于 kubectl get pod -n default,因此查看不到 Kubernetes 的系统组件。
名称空间级别的资源主要分为以下几种类型。
工作负载型资源(workload)
- Pod:K8S 最小组成部分,共享网络栈共享存储卷;
- ReplicaSet:RS,调度器、控制器,通过标签去控制 Pod 的创建、副本数量;
- Deployment:控制器,通过控制 RS 的创建去创建 Pod;
- StatefulSet:为有状态服务所建立的管理器;
- DaemonSet:可以在每一个节点都运行一个 Pod 的组件;
- Job:工作、任务;
- CronJob:轮询工作、轮询任务,为批处理而生的。
服务发现及负载均衡型资源(ServiceDiscovery LoadBalance)
- Service:服务(简称 svc),将服务暴露出去;Service 是后端真实服务的抽象,一个 Service 可以代表多个相同的后端服务
- Ingress:将服务暴露出去;Ingress 是反向代理规则,用来规定 HTTP/S 请求应该被转发到哪个 Service 上
配置与存储型资源
- Volume(存储卷):给 Pod 提供持久化的能力;
- CSI:容器存储接口,可以扩展各种各样的第三方存储卷。
特殊类型的存储卷
- ConfigMap:当配置中心来使用的资源类型,一般用来存储配置文件达到热更新的状态;
- Secret:保存敏感数据,加密方案存储数据,一般用来保存密码文件、密钥等等;
- DownwardAPI:把外部环境中的信息输出给容器,类似于 CS。
Kubernetes 一般都是通过定义资源清单的方式去创建资源,资源清单等价于剧本,写好每一步应该如何去做。
(2)集群级别
不管在任何名称空间下定义,在其他的名称空间下都能看得到,在定义的时候无需指定名称空间。例如:Namespace(名称空间)、Node(节点)、Role(角色)、ClusterRole、RoleBindi