Kubernetes,简称K8s,是当前最流行的容器编排平台之一。它可以帮助我们自动化容器的部署、扩展和管理,大大提高了应用的部署效率。本文将手把手教你搭建一个高效的Kubernetes集群,让你从入门到实战。
一、环境准备
在开始搭建Kubernetes集群之前,我们需要准备以下环境:
- 操作系统:推荐使用CentOS 7或Ubuntu 16.04。
- 虚拟机:可以使用VMware、VirtualBox等虚拟机软件创建虚拟机。
- 网络:确保虚拟机之间可以互相通信。
- 软件:安装Docker、kubeadm、kubectl等软件。
二、安装Docker
Kubernetes依赖于Docker容器引擎,因此首先需要在每台虚拟机上安装Docker。
以CentOS 7为例,执行以下命令:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
以Ubuntu 16.04为例,执行以下命令:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
三、安装kubeadm、kubelet和kubectl
kubeadm、kubelet和kubectl是Kubernetes集群搭建的三个关键工具。
sudo curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubeadm"
sudo chmod +x ./kubeadm
sudo mv ./kubeadm /usr/local/bin/kubeadm
sudo curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubelet"
sudo chmod +x ./kubelet
sudo mv ./kubelet /usr/local/bin/kubelet
sudo curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
sudo chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
四、初始化Master节点
在Master节点上,执行以下命令进行初始化:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
执行完成后,你会看到如下输出:
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
执行以下命令将admin.conf文件复制到$HOME/.kube/目录,并设置权限:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
五、安装Pod网络插件
这里以Calico为例,执行以下命令:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
六、初始化Worker节点
在Worker节点上,执行以下命令:
sudo kubeadm join <Master IP>:6443 --token <Token> --discovery-token-ca-cert-hash sha256:<Hash>
其中,<Master IP>是Master节点的IP地址,<Token>和<Hash>可以在Master节点的初始化命令输出中找到。
七、验证集群
执行以下命令查看集群节点信息:
kubectl get nodes
输出应如下所示:
NAME STATUS ROLES AGE VERSION
master Ready master 8m v1.18.0
worker1 Ready <none> 6m v1.18.0
worker2 Ready <none> 5m v1.18.0
恭喜你,你已经成功搭建了一个Kubernetes集群!
八、总结
本文从环境准备、安装Docker、安装kubeadm、kubelet和kubectl、初始化Master节点、安装Pod网络插件、初始化Worker节点以及验证集群等方面,手把手教你搭建了一个高效的Kubernetes集群。希望这篇文章对你有所帮助!
