使用kubeadm部署高可用的k8s集群

本文介绍了如何使用kubeadm部署高可用的k8s集群,包括服务器要求、安装kubeadm、初始化master节点、安装网络插件和dashboard,以及设置容器存储插件。重点强调了kubeadm的便利性和官方推荐性,以及在部署过程中需要注意的配置和步骤。
摘要由CSDN通过智能技术生成

使用kubeadm部署k8s高可用集群

部署k8s集群方式有很多种,包括二进制文件部署,kubespray,rancher,kubeadm等等。
纯粹的二进制文件部署非常复杂和麻烦,而使用良好的工具来达到“偷懒”的目的是我们程序员的天性,因此自动化部署工具才是我们的首选。
关于部署工具的选用逻辑也很简单,kubeadm是官方提供和推荐的,因此可以认为kubeadm是可用而且可靠的,文档也足够全面,官方的文档已经足够支撑我们把集群部署起来。使用上也很方便,所以不在这上面纠结太多,直接选用。

安装kubeadm

官方文档在此 安装kubeadm

为了方便阅读,结合实际操作过程中我自己的理解,这里整理一下整个部署过程

这里我们的系统已经安装好 docker 18.06.01-ce,关于如何安装docker这里不再赘述,可以看我的另外一篇文章 安装docker

服务器要求:

CPU:2+核
内存:2+G
硬盘:30+G
集群服务器之间内网完全互通
这些 端口未被占用
关闭 swap 不确定是否关闭的话,可以执行 swapoff -a 来关闭
确保集群服务器之间时间同步
关闭防火墙
关闭SElinux

关于容器运行时

k8s 默认的容器运行时是docker,但是不仅仅支持docker,还支持包括 containerd,CRI-O。
如果你的机器上安装了一个以上的运行时,需要卸载掉,只保留一个,或者在后面执行到kubeadm init 时,通过 --cri-socket 来指定使用哪个运行时,否则会出错。
什么是运行时?可以简单理解为容器运行环境,包括运行方式,运行依赖组件,等等,后面有机会再详细聊聊。
怎么检查机器上安装了几个进行时呢?检查以下目录是否存在就知道了

运行时 kubeadm检测的socket 文件路径
Docker /var/run/docker.sock
containerd /run/containerd/containerd.sock
CRI-O /var/run/crio/crio.sock
一些可选配置

1.给服务器配置互相免密ssh

ssh-keygen -t RSA

一路按enter,把生成的id_rsa.pub传到其他服务器上,然后执行

cat id_rsa.pub >> /root/.ssh/authorized_keys

2.修改服务器hostname便于辨识,例如:

hostnamectl set-hostname k8smaster

3.修改/etc/hosts,把集群内的服务器都加进去

下面正式开始安装k8s集群

设置yum源,国外的源比较慢,本次我使用阿里的镜像

cat <<EOF > /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

执行yum install

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

启用服务

systemctl enable --now kubelet
一些准备工作
设置文件驱动和cgroup驱动

默认的文件驱动可能是其他,这里我们设置成overlay2

注意,k8s不支持vfs文件驱动,可以通过 docker info 命令查看你的 storage driver

默认的cgroup驱动是cgroupfs,官方推荐用systemd

cat << EOF > /etc/systemd/system/kubelet.service.d/20-etcd-service-manager.conf
[Service]
ExecStart=/usr/bin/kubelet --address=127.0.0.1 --pod-manifest-path=/etc/kubernetes/manifests --cgroup-driver=systemd  --storage-driver=overlay2 --
Restart=always
EOF

重启

systemctl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值