您现在的位置是:首页 >技术杂谈 >在 CentOS 上使用 RKE 快速搭建 K8S网站首页技术杂谈

在 CentOS 上使用 RKE 快速搭建 K8S

iTaacy 2023-06-08 16:00:03
简介在 CentOS 上使用 RKE 快速搭建 K8S

搭建 Kubernetes 集群需要多台服务器,本文介绍了使用其中一台用作 Master 节点,其余用作 Worker 节点。以下是在 CentOS 上搭建 Kubernetes 集群的基本步骤:

用户设置

这里使用了一个不具有root权限的用户来创建和管理Kubernetes集群,对应的用户名为 k8s:

# 在每个节点上执行以下命令
sudo useradd -m k8s
sudo passwd k8s

# 切换到 k8s 用户下
sudo su k8s
# 为每台服务器创建证书
ssh-keygen -t rsa

# 将每个节点的SSH公钥,复制并粘贴到另外两个节点的k8s用户的 authorized_keys 文件中

# 在节点 1 上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s@192.168.1.2
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s@192.168.1.3

# 在节点 2 上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s@192.168.1.1
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s@192.168.1.3

# 在节点 3 上执行
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s@192.168.1.1
ssh-copy-id -i ~/.ssh/id_rsa.pub k8s@192.168.1.2


安装 Docker

在每个节点上安装 Docker:

  • 首先是卸载之前安装的Dcoker,这里是要确保我们的Docker版本是 RKE 是可以支持的:
# 卸载
sudo docker kill $(docker ps -a -q)
sudo docker rm $(docker ps -a -q)
sudo docker rmi $(docker images -q)
sudo systemctl stop docker
sudo rm -rf /etc/docker
sudo rm -rf /run/docker
sudo rm -rf /var/lib/dockershim
sudo rm -rf /var/lib/docker
sudo yum remove containerd.io.x86_64 docker-buildx-plugin.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64  docker-ce-rootless-extras.x86_64  docker-compose-plugin.x86_64  docker-scan-plugin.x86_64

  • 安装指定版本的 Docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce-20.10.9-3.el7 docker-ce-cli-20.10.9-3.el7 containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo gpasswd -a ${USER} docker
  • 检查当前用户是否可以使用Docker命令
docker ps

# 1. 如果有报错可以尝试退出当前登录的终端再次重新进入
# 2. 如果操作后还是不行,可以尝试重启

sudo reboot

安装 kubeadm, kubelet 和 kubectl

在每个节点上安装 kubeadm、kubelet 和 kubectl:

sudo yum install -y ebtables ethtool
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
sudo yum install -y kubeadm kubelet kubectl --nogpgcheck
sudo systemctl enable kubelet
sudo systemctl start kubelet

安装 RKE

从Rancher官网下载RKE二进制文件,并将其添加到PATH环境变量中

# 下载RKE二进制文件
sudo curl -L https://github.com/rancher/rke/releases/download/v1.4.4/rke_linux-amd64 -o /usr/local/bin/rke
sudo chmod +x /usr/local/bin/rke

# 添加到PATH环境变量
echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc
source ~/.bashrc

配置集群信息

创建一个新的名为 k8s-cluster.yaml 的配置文件,并指定Kubernetes集群的配置信息。以下是一个示例配置文件:

nodes:
  - address: 192.168.1.1
    internal_address: 192.168.1.1
    user: k8s
    role:
      - controlplane
      - etcd
  - address: 192.168.1.2
    internal_address: 192.168.1.2
    user: k8s
    role:
      - worker
  - address: 192.168.1.3
    internal_address: 192.168.1.3
    user: k8s
    role:
      - worker

其中:role = [controlplane, etcd] 是 master , role = [worker] 是 worker。当然我们也可以把三个节点同时设置为 master 和 worker ,即:role = [controlplane, etcd, worker],下面的示例是其中1台是master,另外两台是 worker;
以上配置文件,在实际使用中,你需要根据实际情况修改配置信息。比如,你可以指定节点的计算和内存资源、节点的标签等信息。

运行 RKE 部署 k8s

# 在其中1台服务器上运行如下命名即可完成安装
rke up --config ./cluster.yml

这个命令将会运行 RKE,根据 cluster.yml 中的配置信息,在指定的节点上创建 Kubernetes 集群。该过程可能需要一些时间,取决于节点的数量、网络速度和服务器性能。

等待集群创建完成后,会生成一个 kube_config_cluster.yml 的配置文件。你可以将其复制到本地 $HOME/.kube/config 位置下,这样你就可以使用 kubectl 管理你的 Kubernetes 集群了。

cp kube_config_cluster.yml $HOME/.kube/config
chmod 644 $HOME/.kube/config

现在,你已经成功地搭建了一个包含一个 master 和两个 worker 的 Kubernetes 集群,可以通过 kubectl 命令来管理集群和运行应用程序。
需要注意的是,上述步骤仅是快速搭建 Kubernetes 集群的基本步骤,你可以据此根据实际情况进行修改和优化。

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。