第一篇
1.k8s介绍
01.概念介绍
1自我修复功能,当其中的一个nginx容器宕了,k8s会自动再起一个nginx容器
2根据实时的并发量进行容器的增加和减少,假如此时并发量1000,5个nginx可以支持,但是当并法量到达1200时,5个就撑不住了,所以k8s会自动再起一个nginx容器来完成1200的并发了量
3假如nginx容器的运行需要的到mysql容器和redis容器的支持,他就会自动寻找自己所依赖的服务
4把并发;量平均分配到ngixn上,这里的平均分配是按照你指定的平均分配方法,这里也可以添加权重不让他平均分配
5假如把mysql从5.7升级到8.0 ,但是由于你发现8.0不好用,那么就回退到5.7版本继续使用
6假如mysql要使用磁盘存储,那么你就告诉k8s要多少存储空间,他就会自动给你分配相应的存储空间
02.k8s组件介绍
高可用集群副本数据最好是 >= 3 奇数个
APISERVER:所有服务访问统一入口
CrontrollerManager:维持副本期望数目
Scheduler::负责介绍任务,选择合适的节点进行分配任务
ETCD:键值对数据库 储存K8S集群所有重要信息(持久化)
Kubelet:直接跟容器引擎交互实现容器的生命周期管理
Kube-proxy:负责写入规则至 IPTABLES、IPVS 实现服务映射访问的
COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析 service的统一IP入口 他也是实现用户访问pod的负载均衡的功能
DASHBOARD:给 K8S 集群提供一个 B/S 结构访问体系
INGRESS CONTROLLER:官方只能实现四层代理,INGRESS 可以实现七层代理(实现主机名和域名的代理)
FEDERATION:提供一个可以跨集群中心多K8S统一管理功能
PROMETHEUS:提供K8S集群的监控能力
ELK:提供 K8S 集群日志统一分析介入平台
(团长) Master节点(管理)
(通讯兵) APIserver:外部人员把信息通知给k8s的唯一入口
(参谋部)Scheduler:假如外部人员告诉k8s起一个nginx服务,但是由于k8s有很多node工作节点,那么k8s会选择哪个节点启动nginx,就是靠scheduler进行算法算出来的,他进行运算选择出最合适的node节点作为启动nginx服务的节点
(营长)controller-manager:拿到scheduler计算出来的结果,进行分配任务
(档案室)Etcd:他记录着这个集群中所有的作战任务信息,全部记录在etcd这个数据库
node节点(工作)
(连长)kubelet:接收到controller-manager的工作安排,然后kubelet会安排docker进行具体的完成启动nginx的任务
Kube-proxy是外部用户访问node节点中部署的nginx程序的入口
2.集群环境搭建
01.集群类型
02.安装方式
03.环境搭建
04.环境初始化
05.安装docker
06.安装k8s组件
07.准备集群镜像
08.集群初始化
09.安装网络插件
各个pod之间的通信使用的是overlay Network转换机制:flannel
10.k8s部署一个nginx服务
假如一个pod里面跑两个容器,然后这两个容器假如都是Nginx,那么端口是80 ,启动两个容器之后,共享pause网络栈,共用80端口,所以其中一个容器会报错,报80端口被占用的错误
3.资源管理
01.资源管理介绍
02.yaml语言介绍
03.资源管理方式
04.命令式对象管理
Type
名称空间类型:
元数据类型:
集群级别:
Comand
05.命令式对象配置
6.声明式对象配置