栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

k8s:搭建k8s集群

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s:搭建k8s集群

一:准备三台服务器

        一台用作主机服务器,两台用作节点服务器

二:搭建环境(三台机器都需要操作) 1.关闭SELinux

        原因:这个是用来加强安全性的一个组件,但非常容易出错且难以定位,一般上来装完系统就先给禁用了。

        通过运行命令 setenforce 0 和 sed ... 将 SELinux 设置为 permissive 模式 可以有效地将其禁用。 这是允许容器访问主机文件系统所必需的,而这些操作时为了例如 Pod 网络工作正常。

[root@k8s-node-1 ~]# sudo setenforce 0
[root@k8s-node-1 ~]# sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
2.关闭SWAP

        原因:这个当内存不足时,linux会自动使用swap,将部分内存数据存放到磁盘中,这个这样会使性能下降,为了性能考虑推荐关掉。

[root@k8s-node-1 ~]# swapoff -a
[root@k8s-node-1 ~]# vi /etc/fstab

注释这一行:/mnt/swap swap swap defaults 0 0
保存退出

查看swap是否为0
[root@k8s-node-1 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15615         899       12240           2        2475       14370
Swap:             0           0           0
3.关闭防火墙

        原因:防火墙,会对所有网络流量进行过滤、转发,如果是内网机器一般都会直接关闭,省的影响网络性能,但k8s不能直接关了,k8s是需要用防火墙做ip转发和修改的,当然也看使用的网络模式,如果采用的网络模式不需要防火墙也是可以直接关闭的

[root@k8s-node-1 ~]# systemctl stop firewalld
[root@k8s-node-1 ~]# systemctl disable firewalld
4.同步服务器的时间

        原因:时间不同步的情况下,k8s节点会搭建不成功

[root@k8s-node-1 ~]# yum install ntpdate -y

[root@k8s-node-1 ~]# ntpdate time.windows.com

[root@k8s-node-1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
四:安装(三台机器都需要操作)

需要在每台机器上安装以下的软件包:

  • kubeadm:用来初始化集群的指令。

  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等。

  • kubectl:用来与集群通信的命令行工具。

1.创建阿里的yum源文件
[root@k8s-node-1 ~]# cat < /etc/yum.repos.d/kubernetes.repo
> [kubernetes]
> name=Kubernetes
> baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
> enabled=1
> gpgcheck=1
> repo_gpgcheck=1
> gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
> EOF
2.安装
[root@k8s-node-1 ~]# yum install -y kubelet kubeadm kubectl

ps:由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用 

[root@k8s-node-1 ~]# yum install -y --nogpgcheck kubelet kubeadm kubectl
3.设置开机启动
[root@k8s-node-1 ~]# systemctl enable docker
[root@k8s-node-1 ~]# systemctl enable kubelet
五:集群搭建 1.主机搭建(初始化集群)注:只需要在集群主机上操作,两台节点服务器不需要
[root@k8s-node-1 ~]# kubeadm init 
> --kubernetes-version 1.22.4 
> --apiserver-advertise-address=0.0.0.0 
> --service-cidr=10.96.0.0/16 
> --pod-network-cidr=10.245.0.0/16 
> --image-repository registry.aliyuncs.com/google_containers

注:初始化完成后保留最后kubeadm join打印的参数,用来给node接入集群时使用

1.1.将Kubernetes系统管理员的认证配置文件admin.conf复制到默认的目录下:
[root@k8s-node-1 /]# mkdir ~/.kube
[root@k8s-node-1 ~]# cp /etc/kubernetes/admin.conf ~/.kube/config
1.2.查看是否配置完成
[root@k8s-node-1 ~]# kubectl get node
NAME         STATUS     ROLES                  AGE   VERSION
k8s-node-1   NotReady   control-plane,master   23m   v1.22.4
1.3.安装Pod网络附加组件
[root@k8s-node-1 ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/documentation/kube-flannel.yml
1.3.1.确认组件状态为Running
[root@k8s-node-1 ~]# kubectl get pods -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-7f6cbbb7b8-ss8h4             1/1     Running   0          31m
coredns-7f6cbbb7b8-ttj9b             1/1     Running   0          31m
etcd-k8s-node-1                      1/1     Running   0          31m
kube-apiserver-k8s-node-1            1/1     Running   0          31m
kube-controller-manager-k8s-node-1   1/1     Running   0          31m
kube-flannel-ds-292sj                1/1     Running   0          3m35s
kube-proxy-kptd5                     1/1     Running   0          31m
kube-scheduler-k8s-node-1            1/1     Running   0          31m
2.集群节点操作(加入节点)

需要获取主机的token和sha256的值,就是这个

注:主机初始化完成后保留最后kubeadm join打印的参数,用来给node集群时使用

如果忘记留着也不要紧,重新获取一下就行

2.1.获取主机master的token

注:token有过期时间,过期了重新获取就可以

[root@k8s-node-1 ~]# kubeadm token create
j5lmjo.dyehwv7n46ngmdu3
2.2.获取主机master的sha256
[root@k8s-node-1 ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
2.3.第一台节点服务器加入节点
//注意复制的时候带着空格
[root@k8s-node-2 ~]# kubeadm join 主机的IP地址:6443 
> --token j5lmjo.dyehwv7n46ngmdu3 
> --discovery-token-ca-cert-hash sha256:9dc2474f133f538b6ddf17fcdafdf1e73d99c6fc2cfd19b4ea2d46e819e42a44 
> --ignore-preflight-errors=Swap 
> -v5
2.4.第二台节点服务器加入节点
//注意复制的时候带着空格
[root@k8s-node-3 ~]# kubeadm join 主机的IP地址:6443 
> --token j5lmjo.dyehwv7n46ngmdu3 
> --discovery-token-ca-cert-hash  sha256:9dc2474f133f538b6ddf17fcdafdf1e73d99c6fc2cfd19b4ea2d46e819e42a44 
> --ignore-preflight-errors=Swap 
> -v5
2.5.在集群主机上查看节点服务器是否加入集群
[root@k8s-node-1 ~]# kubectl get nodes
NAME         STATUS   ROLES                  AGE     VERSION
k8s-node-1   Ready    control-plane,master   2d20h   v1.22.4
k8s-node-2   Ready                     170m    v1.22.4
k8s-node-3   Ready                     3m42s   v1.22.4
k8s集群搭建完成!
 --------------------------------------------------
❤ 如果本篇博客对您有一定的帮助,大家记得点赞、留言、关注哦❤ 
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617883.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号