部署环境说明:

cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)

一、使用rke命令安装 k8s集群

1、在所有节点上安装chronyd服务:

yum -y install chrony

修改chrony服务的配置文件,将时间同步服务器设置为阿里源:

vim /etc/chrony.conf

server ntp1.aliyun.com iburst

server ntp2.aliyun.com iburst

将chronyd服务设置为开机自启动,并重启chrony服务:

systemctl enable chronyd

systemctl restart chronyd

2、关闭firewalld防火墙

systemctl disable firewalld

systemctl stop firewalld

3、设置开机自动加载br_netfilter模块,并应用以下 sysctl 设置:

vim /etc/sysconfig/modules/k8s.modules

#!/bin/bash

/usr/sbin/modprobe br_netfilter

chmod +x /etc/sysconfig/modules/k8s.modules

source /etc/sysconfig/modules/k8s.modules

vim /etc/sysctl.conf

net.bridge.bridge-nf-call-iptables=1

sysctl -p

4、使用阿里源安装docker

docker-ce镜像-docker-ce下载地址-docker-ce安装教程-阿里巴巴开源镜像站

systemctl enable docker

systemctl start docker

5、使用阿里源安装kubectl,为了与k8s版本保持一致,这里安装1.21.6版本。

kubernetes镜像-kubernetes下载地址-kubernetes安装教程-阿里巴巴开源镜像站

6、新建ssh用户

# 创建admin用户

useradd admin

设置admin用户密码

passwd admin

admin用户加入docker用户组,添加到docker用户组的用户会自动获得主机的 root 权限

usermod -aG docker admin

7、禁用所有节点上的交换功能(Swap

swapoff -a

编辑配置文件/etc/fstab,永久禁用swap分区

8、SSH Server 配置

您的 SSH server 全系统配置文件,位于/etc/ssh/sshd_config,该文件必须包含以下代码,允许 TCP 转发。

AllowTcpForwarding yes

9、下载 RKE 二进制安装包

https://github.com/rancher/rke/releases/download/v1.3.2/rke_linux-amd64

对应的k8s版本为1.21.6

mv rke_linux-amd64 rke

chmod +x rke

10、配置ssh免密连接

在master执行创建ssh公私钥 并把公钥分发到各个节点上

su - admin

ssh-keygen -t rsa

ssh-copy-id admin@192.168.159.101

ssh-copy-id admin@192.168.159.102

ssh-copy-id admin@192.168.159.103

scp /home/admin/.ssh/id_rsa admin@192.168.159.102:/home/admin/.ssh/

scp /home/admin/.ssh/id_rsa admin@192.168.159.103:/home/admin/.ssh/

11、运行rke config命令,在当前路径下创建 cluster.yml文件。这条命令会引导您输入创建集群所需的所有参数。

rke config --name cluster.yml

12、使用 RKE 部署 Kubernetes 集群

创建了cluster.yml文件后,您可以运行以下命令部署集群。这条命令默认cluster.yml已经保存在了您运行命令所处的路径下。

rke up

运行该命令后,返回的最后一行信息应该是Finished building Kubernetes cluster successfully,表示成功部署集群,可以开始使用集群。在创建 Kubernetes 集群的过程中,会创建一个kubeconfig 文件,它的文件名称是 kube_config_cluster.yml,您可以使用它控制 Kubernetes 集群。

export KUBECONFIG=/home/admin/kube_config_cluster.yml

[admin@localhost ~]$ ls

cluster.rkestate  cluster.yml  kube_config_cluster.yml

[admin@localhost ~]$ scp * admin@192.168.159.102:/home/admin/

[admin@localhost ~]$ scp * admin@192.168.159.103:/home/admin/

cat /etc/profile.d/k8s.sh

#!/bin/bash

export KUBECONFIG=/home/admin/kube_config_cluster.yml

scp /etc/profile.d/k8s.sh root@192.168.159.102:/etc/profile.d/

scp /etc/profile.d/k8s.sh root@192.168.159.103:/etc/profile.d/

二、Helm Chart 安装 Rancher

https://get.helm.sh/helm-v3.8.2-linux-amd64.tar.gz

chown root.root helm

mv helm /usr/local/bin/

1、添加 Helm Chart 仓库

使用helm repo add命令添加含有 Rancher Chart Helm Chart 仓库。

helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable

2、 Rancher 创建 Namespace

我们需要定义一个 Kubernetes Namespace,在 Namespace 中安装由 Chart 创建的资源。这个命名空间的名称为 cattle-system

kubectl create namespace cattle-system

3、安装 cert-manager

如果你使用自己的证书文件 ingress.tls.source=secret或者使用外部 TLS 负载均衡器可以跳过此步骤。仅在使用 Rancher 生成的证书 ingress.tls.source=rancher  Let's Encrypt 颁发的证书 ingress.tls.source=letsEncrypt时才需要 cert-manager

# 如果你手动安装了CRD,而不是在Helm安装命令中添加了`--set installCRDs=true`选项,你应该在升级Helm chart之前升级CRD资源。

kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.1/cert-manager.crds.yaml

或者下载cert-manager.crds.yaml这个文件后执行:kubectl apply -f cert-manager.crds.yaml

# 添加 Jetstack Helm 仓库

helm repo add jetstack https://charts.jetstack.io

# 更新本地 Helm chart 仓库缓存

helm repo update

# 安装 cert-manager Helm chart(会卡顿一会,不要取消命令的执行)

helm install cert-manager jetstack/cert-manager \

  --namespace cert-manager \

  --create-namespace \

  --version v1.5.1

安装完 cert-manager 后,你可以通过检查 cert-manager 命名空间中正在运行的 Pod 来验证它是否已正确部署:

[admin@localhost ~]$ kubectl get pods --namespace cert-manager

NAME                                      READY   STATUS    RESTARTS   AGE

cert-manager-56b686b465-gndz4             1/1     Running   0          45m

cert-manager-cainjector-75c94654d-tlzd7   1/1     Running   0          45m

cert-manager-webhook-69bd5c9d75-4rnx7     1/1     Running   0          45m

4、通过 Helm 安装 Rancher

helm install rancher rancher-stable/rancher --namespace cattle-system  --set hostname=rancher.test.org --version v2.5.9 --set replicas=1

等待 Rancher 运行:

[admin@localhost ~]$ kubectl -n cattle-system rollout status deploy/rancher

Waiting for deployment "rancher" rollout to finish: 0 of 1 updated replicas are available...

5、验证 Rancher Server 是否已成功部署

[admin@localhost ~]$ kubectl -n cattle-system rollout status deploy/rancher

deployment "rancher" successfully rolled out

如果看到以下错误: error: deployment "rancher" exceeded its progress deadline, 你可以通过运行以下命令来检查 deployment 的状态:

kubectl -n cattle-system get deploy rancher

6、 保存你的选项

请保存你使用的全部 --set 选项。使用 Helm 升级 Rancher 到新版本时,你将需要使用相同的选项。

7、安装完成

现在你应该具有一个功能正常的 Rancher Server 了。

打开浏览器,通过 Helm 指定的 hostname 设置的域名来访问你的 Rancher Server。如果你的环境没有设置公共 DNS 解析,你可以在 hosts 文件中手动映射域名和 IP 的解析记录。

Logo

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

更多推荐