一、安装环境
![](https://i-blog.csdnimg.cn/direct/9c8077dac26341f8847bce0f7c5d2b82.png)
二、前期准备
1.设置免密登录
[root@k8s-master ~]# ssh-keygen
[root@k8s-master ~]# ssh-copy-id root@192.168.2.77
[root@k8s-master ~]# ssh-copy-id root@192.168.2.88
2.yum源配置
![](https://i-blog.csdnimg.cn/direct/cfa2e9c68d9145e8bdb968f3835992bb.png)
![](https://i-blog.csdnimg.cn/direct/26dc147877cc457aa731c5201b43cbac.png)
![](https://i-blog.csdnimg.cn/direct/985dd648626c49749ecb8feb7b1e9cf4.png)
3.清空创建缓存
![](https://i-blog.csdnimg.cn/direct/99d7437acf3e47f58fd38a1d2f8a8c52.png)
4.主机映射(三台主机都要设置)
![](https://i-blog.csdnimg.cn/direct/e8d906c40bb14c78bbc922a7e7bbb22c.png)
5.安装常用工具
![](https://i-blog.csdnimg.cn/direct/98e0d6d385634cc382651c92c5939752.png)
6.关闭firewalld NetworkManager selinux swap虚拟分区
![](https://i-blog.csdnimg.cn/direct/229e05d3ff1c42bba0784dcd540d35de.png)
![](https://i-blog.csdnimg.cn/direct/4d6057ab0d704bdabb940b02ee981cab.png)
7.同步时间
![](https://i-blog.csdnimg.cn/direct/c26588ba05b34d48a6f977a32af36bec.png)
8.配置limit
![](https://i-blog.csdnimg.cn/direct/9b6b7bd3521549d5a22e19b9422796fa.png)
9.下载yaml文件从gitee上下载
配置pod的yaml文件和docker-compose.uaml文件相似
![](https://i-blog.csdnimg.cn/direct/f267a5eb183448f581128874a09470b5.png)
三、配置内核模块
1.ipvs的配置(三个节点)
![](https://i-blog.csdnimg.cn/direct/1e4bdcd7448c4ea18be36bdc5b1721d3.png)
![](https://i-blog.csdnimg.cn/direct/c203899b68f54a668c7ef2c7ee6bcd73.png)
![](https://i-blog.csdnimg.cn/direct/9901d346784c4743845496418b0d8b6b.png)
2.k8s的内核加载(三个)
![](https://i-blog.csdnimg.cn/direct/c265efaf41c04efa8be49830c7916f77.png)
![](https://i-blog.csdnimg.cn/direct/ab00d545d06e4961ace4f38a172ad04c.png)
![](https://i-blog.csdnimg.cn/direct/09c04035b4fc4ed8af8671767aadb074.png)
四、基本组件安装
1.三个节点安装docker-ce docker-ce-cli containerd.io(三个)
![](https://i-blog.csdnimg.cn/direct/1233946e61194e538ad9fe3d697fd034.png)
2.配置containerd所需模块(三个)
![](https://i-blog.csdnimg.cn/direct/e2e3d3dfce1f490cb8dc3948793dd948.png)
3.配置containerd所需内核(三个)
![](https://i-blog.csdnimg.cn/direct/50fcfa6db17c4a69aa7f70063e46e867.png)
![](https://i-blog.csdnimg.cn/direct/1ef23206875a4d3484891929f2979ebc.png)
4.containerd配置文件(三个)
![](https://i-blog.csdnimg.cn/direct/942fe74b43e34532bcac99213ce2ed9c.png)
5.配置 crictl 客户端连接的运⾏位置 (三个)
![](https://i-blog.csdnimg.cn/direct/50c198a2c96b4a07a19c7112b91b369b.png)
6.安装kubernetes组件(三个节点)
![](https://i-blog.csdnimg.cn/direct/c0ea3a739c0b4ede8e1c63b4c37474f1.png)
![](https://i-blog.csdnimg.cn/direct/d2c65f5acac448598a314cfeb3ca8491.png)
五、kubernetes集群初始化
1.kubeadm配置文件
![](https://i-blog.csdnimg.cn/direct/6d081abea51543af9a55a1887c0039a7.png)
![](https://i-blog.csdnimg.cn/direct/0687eedf562e40a2b0f732ba5116a370.png)
2.下载组件镜像
3.集群初始化
![](https://i-blog.csdnimg.cn/direct/e45d9a4795964e38925da3166a7b69a5.png)
4.node加入集群
![](https://i-blog.csdnimg.cn/direct/e6280f70f24c473aad13a4dbdd11eb10.png)
![](https://i-blog.csdnimg.cn/direct/6dec75f955bd4dfea05897bbff58a7a6.png)
5.查看组件容器状态
![](https://i-blog.csdnimg.cn/direct/008e60f85f874ffbaadec1ad725d262c.png)
![](https://i-blog.csdnimg.cn/direct/766f3b71b4174b85b54a28062c330111.png)
status:
![](https://i-blog.csdnimg.cn/direct/0318819de6464d5eaf5cdea47f042197.png)
六、部署calico
1.calico的部署
![](https://i-blog.csdnimg.cn/direct/1924fdfff6b747fab17173b61b7258a8.png)
![](https://i-blog.csdnimg.cn/direct/e7b8a081f4eb42919f981be423936c65.png)
2 . 补 充 :
(1)如果出现这种错误
![](https://i-blog.csdnimg.cn/direct/0e15e7c82b8c4d81aea1efa9bd4464f2.png)
![](https://i-blog.csdnimg.cn/direct/a0301863dc5a4cba8b19c4e5576345cc.png)
(2)解决办法:
![](https://i-blog.csdnimg.cn/direct/c05f094cdda9417a8bda684785852ab4.png)
![](https://i-blog.csdnimg.cn/direct/1b06e06f16144033a9fe382fe9823504.png)
3.测试
(1)创建节点
![](https://i-blog.csdnimg.cn/direct/a8138e339f5c44e2a66a395b9ef674e3.png)
(2)删除节点
![](https://i-blog.csdnimg.cn/direct/624e8b83061441c288933bd86e6003aa.png)
七、Metrics部署
1.复制证书到所有节点
![](https://i-blog.csdnimg.cn/direct/4a3bbd47d00a492a9845e72f21ce8538.png)
2.安装metrics server
[root@k8s-master ~]# ls components.yaml
components.yaml
[root@k8s-master ~]# mkdir pods
[root@k8s-master ~]# mv components.yaml pods/
[root@k8s-master ~]# cd pods/
[root@k8s-master pods]# ls
components.yaml
[root@k8s-master pods]# cat components.yaml | wc -l
202
添加metric server的pod资源
[root@k8s-master pods]# kubectl create -f components.yaml
在kube-system命名空间下查看metrics server的pod运⾏状态
[root@k8s-master pods]# kubectl get po -A|grep metrics
kube-system metrics-server-79776b6d54-dmwk6 1/1 Running 0 2m26s
3.查看节点监控资源
![](https://i-blog.csdnimg.cn/direct/2088565845304c2983372579946dfd8a.png)
4.dashboard部署
[root@k8s-master pods]# cd ~/k8s-ha-install/
[root@k8s-master k8s-ha-install]# ls
bootstrap CoreDNS dashboard metrics-server README.md
calico csi-hostpath kubeadm-metrics-server pki snapshotter
[root@k8s-master k8s-ha-install]# cd dashboard/
[root@k8s-master dashboard]# ls
dashboard-user.yaml dashboard.yaml
简历dashboard的pod资源
[root@k8s-master dashboard]# kubectl create -f .
[root@k8s-master dashboard]# kubectl get po -A|grep dashboard
kubernetes-dashboard dashboard-metrics-scraper-7b554c884f-7489m 1/1 Running 0 58s
kubernetes-dashboard kubernetes-dashboard-54b699784c-fsjrw 0/1 ContainerCreating 0 58s
[root@k8s-master dashboard]# kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
32 type: NodePort
Edit cancelled, no changes made.
edit:进⼊kubernetes的⽂本编辑器
svc:指定某个服务项,这⾥指定的是kubernetes-dashboard
-n:指定命名空间,kubernetes-dashboard
命令执⾏后相当于进⼊vim⽂本编辑器,不要⽤⿏标滚轮,会输出乱码的!可以使⽤"/"搜索,输⼊"/type"找到⽬
标,如果已经为NodePort忽略此步骤
查看访问端口号
获取kubernetes-dashboard状态信息,包含端⼝,服务IP等
[root@k8s-master dashboard]# kubectl get svc kubernetes-dashboard -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.96.242.161 <none> 443:30754/TCP 4m7s
5.浏览器访问:192.168.2.66:30754
找到端⼝号后,通过 master 的 IP+端⼝即可访问 dashboard(端⼝为终端查询到的端⼝,要⽤ https 协议访问)
![](https://i-blog.csdnimg.cn/direct/1a5484bafc764daf911fcd7b24a37a0c.png)
6.获得登录的token
![](https://i-blog.csdnimg.cn/direct/3117556b4d654e0f88f2c6727a678af9.png)
7.将获得的token粘贴到浏览器中
1)在"输⼊ token "内输⼊终端⽣成的 token
![](https://i-blog.csdnimg.cn/direct/757c5b52e4c949e5bf4980a74cb73e4a.png)
2)就可以进行登录了
![](https://i-blog.csdnimg.cn/direct/35ce53aafb03427f9547415c17d9b988.png)
8.使用nginx镜像创建一个节点
![](https://i-blog.csdnimg.cn/direct/38fb883ed27d44238bf110af8ba14b6e.png)
9.访问页面上就会显示出来
![](https://i-blog.csdnimg.cn/direct/db1675a952a44809a26d2983dcac8137.png)
10.在访问页面中也可以查看日志
![](https://i-blog.csdnimg.cn/direct/d9f808cee0ea4bf0894b21dd5b704e0e.png)
11.在访问页面中创建节点
![](https://i-blog.csdnimg.cn/direct/00608adab8974823a3fdaf2a0b1322c0.png)
![](https://i-blog.csdnimg.cn/direct/abbf218460b845aca43423bfa970a7f5.png)
12.在Linux中可以查到
![](https://i-blog.csdnimg.cn/direct/4a0cd12acd7e452b8c68700efd37fcfc.png)
八、kube-proxy
1.改为ipvs模式
![](https://i-blog.csdnimg.cn/direct/9e94ac5c186c40b6ba9a90951d974626.png)
2.更新kube-proxy的pod
![](https://i-blog.csdnimg.cn/direct/9f0aeeb0b79c48c893283c2aeefcde70.png)
3.访问测试
![](https://i-blog.csdnimg.cn/direct/2a1f01d222974f3394e6c35b6bfd7f61.png)
4.查看服务的网段
![](https://i-blog.csdnimg.cn/direct/62ce54fbb6514dc196b5989f9031cc94.png)
5.验证是否可正常创建参数
![](https://i-blog.csdnimg.cn/direct/e060f3e5d38b4aa4962c5a9d87127646.png)
6.进到创建的节点中
![](https://i-blog.csdnimg.cn/direct/8096a8366d2d41049b669bb1830b9861.png)
![](https://i-blog.csdnimg.cn/direct/5144da8aaa0e43b2a3e7fdfe00bd0b74.png)
7.访问dns的443端口和53端口
![](https://i-blog.csdnimg.cn/direct/ed231fd60a94499b8e7a90a4b1ddd7d9.png)
九、kubernetes自动补齐
1.安装自动补齐
![](https://i-blog.csdnimg.cn/direct/3e3ae13773e143bc949f26690f50a159.png)
2.kubernetes基础命令
![](https://i-blog.csdnimg.cn/direct/74d651fee8be468c999fb0d4e162bb19.png)
3.编写yaml文件-创建节点
![](https://i-blog.csdnimg.cn/direct/db83804b4cd04566bca2df5c61e65c46.png)
![](https://i-blog.csdnimg.cn/direct/b55a346889a3423888ec369207ce5964.png)
4.编辑json文件
![](https://i-blog.csdnimg.cn/direct/ee00455a31fd44038260d3037c7a3d82.png)