kubeadm 搭建 K8s的详细过程

  • Post category:Linux

下面我将为你详细讲解”kubeadm 搭建 K8s的详细过程”的完整攻略。

首先,kubeadm是一个工具,通过使用kubeadm可以在较短的时间内在Linux系统上快速搭建一个Kubernetes集群。而使用kubeadm搭建K8s的过程大致分为以下几个步骤:

步骤一:准备环境

在使用kubeadm部署Kubernetes之前,我们需要先准备一些必要的环境,包括:

  • 至少2台Linux机器,版本为7.x或更高版本。
  • 机器硬件配置要求:至少2GB内存和2个CPU
  • 每台机器都需要安装Docker或cri-o等容器运行时。
  • 关闭SELinux和防火墙或者打开必要的端口。

步骤二:安装kubeadm

当我们准备好环境后,就可以安装kubeadm了。kubeadm的安装非常简单,只需要执行以下命令即可:

$ sudo apt-get update && sudo apt-get install -y apt-transport-https curl
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
$ echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl

步骤三:初始化Master节点

在安装kubeadm之后,我们需要初始化Master节点。Master节点是Kubernetes集群的控制中心,所有的控制指令都经过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

按照上面的提示,我们需要以普通用户的身份执行以下命令:

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

步骤四:部署网络插件

在Kubernetes集群中,网络插件用来管理Pod之间的网络通信,让我们的应用能够相互通信。在这里,我们选择安装Calico网络插件,只需要执行以下命令:

$ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

在执行完以上命令后,我们可以通过以下命令查看Pod的状态:

$ kubectl get pods --all-namespaces

步骤五:添加Worker节点

在上述步骤中,我们已经成功地安装并初始化了Master节点,并且部署了网络插件,现在我们需要将Worker节点加入到集群中。只需要在Worker节点上执行以下命令即可:

$ sudo kubeadm join <Master节点的IP>:<Master节点的port> --token <token值> --discovery-token-ca-cert-hash sha256:<discovery_token_ca_cert_hash>

其中,是指Master节点的IP地址,是指Master节点的端口号,是指在Master节点上生成的令牌,是指用于发现Master节点的证书的哈希值。

示例说明

下面,我将举两个示例说明kubeadm搭建Kubernetes的过程。

示例一

假设我们有两台机器,它们的IP地址分别为192.168.1.1和192.168.1.2,我们需要在上面搭建一个Kubernetes集群。

首先,我们需要为每台机器安装Docker或cri-o等容器运行时,同时关闭SELinux和防火墙或者打开必要的端口。

然后,在192.168.1.1机器上执行以下命令来安装kubeadm:

$ sudo apt-get update && sudo apt-get install -y apt-transport-https curl
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
$ echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl

在安装完kubeadm之后,我们需要在192.168.1.1机器上初始化Master节点,只需要执行以下命令:

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

在初始化Master节点之后,我们需要将192.168.1.2机器加入到集群中,只需要在192.168.1.2机器上执行以下命令:

$ sudo kubeadm join 192.168.1.1:6443 --token <token值> --discovery-token-ca-cert-hash sha256:<discovery_token_ca_cert_hash>

使用上述方式,我们就成功地将两台机器加入到了Kubernetes集群中。

示例二

在另一个场景中,我们需要在一台机器上搭建Kubernetes集群。由于这台机器的硬件配置较低,我们希望使用较小的Pod网络CIDR地址以减少资源占用。

首先,我们需要为该机器安装Docker或cri-o等容器运行时,同时关闭SELinux和防火墙或者打开必要的端口。

然后,在该机器上执行以下命令来安装kubeadm:

$ sudo apt-get update && sudo apt-get install -y apt-transport-https curl
$ curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
$ echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl

在安装完kubeadm之后,我们需要在该机器上初始化Master节点,只需要执行以下命令:

$ sudo kubeadm init --pod-network-cidr=172.16.0.0/16

使用上述方式,我们就成功地在一台机器上搭建了一个Kubernetes集群。