最近有小伙伴公司要搭建一套k8s集群环境,想让我写一下大概的搭建流程,特此成文。

一、概述

K8s是一款开源的容器编排引擎,用于部署、管理和扩展容器化应用程序。K8s能够自动管理容器化应用程序的部署、参数配置、自我修复、负载均衡、无状态服务扩展和滚动升级等。本文将介绍如何在Linux系统上搭建K8s集群。

二、系统配置和环境要求

在开始搭建K8s集群之前,需要预先准备好以下配置和环境:

硬件配置:

- Master主机:4个CPU、8GB内存、50GB硬盘空间
- Node子机:2个CPU、4GB内存、30GB硬盘空间

软件环境:

- Ubuntu 18.04/20.04 LTS操作系统
- Docker 19.03.x版本及以上
- kubeadm工具(v1.20.x版本及以上)
- kubectl命令行工具(v1.20.x版本及以上)
- kubelet服务(v1.20.x版本及以上)

三、安装Docker

1.卸载旧版本Docker

如果您已经安装过旧版本的Docker,请先卸载它。您可以使用以下命令卸载:

sudo apt-get remove docker docker-engine docker.io containerd runc

2.添加Docker官方GPG秘钥

使用以下命令添加官方的GPG秘钥,以保证下载的Docker软件包的完整性:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3.添加Docker稳定源

使用以下命令将Docker稳定源添加到APT sources列表中:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

4.更新APT程序包索引

使用以下命令更新APT程序包索引:

sudo apt-get update

5.安装Docker CE

使用以下命令安装Docker CE:

sudo apt-get install docker-ce docker-ce-cli containerd.io

6.启动Docker服务

使用以下命令启动Docker服务并设置开机自启:

sudo systemctl enable docker
sudo systemctl start docker

7.测试Docker

使用以下命令测试Docker是否安装成功:

sudo docker run hello-world

四、安装kubeadm、kubectl、kubelet

1.添加Kubernetes官方GPG秘钥

使用以下命令添加官方的GPG秘钥:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

2.添加Kubernetes稳定源

使用以下命令将Kubernetes稳定源添加到APT sources列表中:

sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

3.更新APT程序包索引

使用以下命令更新APT程序包索引:

sudo apt-get update

4.安装kubeadm、kubectl、kubelet

使用以下命令安装kubeadm、kubectl、kubelet:

sudo apt-get install -y kubelet kubeadm kubectl

5.禁止kubelet启动Swap分区

使用以下命令禁止kubelet使用Swap分区:

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

五、创建K8s集群

1.创建Master节点

使用以下命令创建Master节点:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

其中--pod-network-cidr参数用于指定Pod网络的IP地址段。

2.将kubectl配置Kubernetes集群

使用以下命令将kubectl配置到Kubernetes集群:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.安装网络插件

在创建Pod之前,需要为集群安装网络插件。这里使用Flannel插件。使用以下命令安装Flannel插件:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

4.加入Node节点

在Master节点初始化完成后,可以使用以下命令将Node节点加入到Kubernetes集群中:

sudo kubeadm join <Master节点的IP地址>:<端口号> --token <Token值> --discovery-token-ca-cert-hash sha256:<证书HASH值>

其中,<Master节点的IP地址>是Master节点的IP地址,<端口号>是Master节点的API服务器端口号,<Token值>是Kubernetes集群中用于验证身份的Token值,<证书HASH值>是证书的sha256哈希值。

5.验证集群状态

使用以下命令验证集群状态是否正常:

kubectl get nodes
kubectl get pods --all-namespaces

如果两个命令的输出都正常,则表明K8s集群已经成功搭建完成。

六、总结

本文介绍了在Linux系统上搭建K8s集群的详细步骤。在搭建K8s集群之前,需要预先准备好硬件配置和软件环境。在搭建集群过程中,需要安装Docker、kubeadm、kubectl和kubelet,并且需要使用kubeadm初始化Master节点和加入Node节点。最后,还需要安装网络插件Flannel来为集群提供网络服务。希望这篇文章可以帮助读者们成功搭建自己的Kubernetes集群。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐