一、kubernetes概述
### --- 环境准备
~~~ 请不要使用带中文的服务器和克隆的虚拟机
~~~ 生产环境建议使用二进制安装方式
### --- k8s1.20更新说明
~~~ 官网地址:https://kubernetes.io/:Getting started——>Release notes and v1.20 Release Notes——>Server Binarles:kubernetes-server-linux-amd64.tar.gz
~~~ 下载地址:也可以在GitHub上下载
~~~ 查看版本之家的变更:Changelog sincev1.19.0:
~~~ 可以查看版本变更:放弃了docker的查看:Dockershim deprecation20.1.23版本之后放弃这个插件。
~~~ 生产环境中,建议使用小版本大于5的kubernetes版本,比如1.19.5/2.20.5以后的才可用于生产环境。
二、kubeadm部署架构
### --- kubeadm部署架构说明
~~~ 三台master二台node节点
~~~ # ETCD:键值数据库,主要存放k8s的数据的 ;创建的一些资源,变更都会存放在它的ETCD里面
~~~ # 此环境:ETCD和3台master是部署在一块的,没有单独的找三台etcd的设备,
~~~ 若是生产环境中master主机的配置够高的话,可以部署一起,
~~~ 若是集群比较大的话,建议把etcd和master节点分开来部署 。
~~~ k8s集群主要分为master节点:master节点是控制节点
~~~ nod和node节点,node节点使用来跑一些pod或者容器的
### --- maser节点的组件:
~~~ kube-APIServer:整个控制的来源,所有的流量必须经过APIserver
~~~ ControlierManager:集群的控制器,
~~~ Scheduler:集群的调度器,可以调度pod该调度到那个node节点上面
~~~ 测试环境可以部署node的组件:因为我们的测试环境设备没有那么多,可以使用此方案:部署node组件kubelet和kube-proxy。
### --- node节点组件说明:
~~~ kubelet
~~~ kube-proxy
~~~ docker:docker并不属于k8s组件
### --- 其它部署说明
~~~ Load Balancer:3台master和2台node如何组成一个集群;中间需要用到负载均衡。
~~~ 配置负载均衡一般会用到nginx+keeplived;或者 nginx+NodeBalancers
~~~ Node节点和master节点通讯也是经过虚拟IP的,
~~~ 虚拟IP会选主,挂到3台master节点的某一台网卡上面,
~~~ VIP后面挂了3台master节点上kube-APIServer地址+端口号,就实现了高可用架构。
~~~ kubelete和kube-proxy想要访问master节点;会先经过Load Balancer再经过Kube-APIServer连接到master节点,再与其他组件交互。
~~~ VIP不占设备资源的。