一、安装K3S(这里第一个节点即是 Server节点 也是 Agent节点)
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb"
参数解释:
–docker:使用docker,默认是containerd。
–datastore-endpoint 指定外部数据库(格式: mysql://数据库账号:数据库密码@tcp(数据库连接地址:数据库端口)/数据库名称)
二、在K3S集群Server节点服务器查看token令牌凭证
如上一步的机器就是Server节点,上面服务器中执行如下:
cat /var/lib/rancher/k3s/server/node-token
三、向K3S集群中添加新的节点
1.添加Server节点(如不需要添加Server节点可忽略)
这里添加Server节点跟第一个节点安装一样, 需要多加了一个 --token=token令牌凭证 , 这里是上面一步查到的token令牌凭证
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - server --token=mytoken --datastore-endpoint="mysql://demo:demo123@tcp(mysql.demo.com:3306)/demodb"
2.添加Agent节点(如不需要添加Agent节点可忽略)
这里添加Agent节点需要指定Server节点地址 跟 token令牌凭证
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://192.168.4.160:6443 K3S_TOKEN=mytoken sh -
K3S_URL=https://192.168.4.160:6443 表示 K3S集群 server节点的地址, 可以是任意一个主节点地址,如果配置了主节点的负载均衡地址的话,这可以填那个统一的域名地址
K3S_TOKEN=mytoken 表示token令牌凭证,在每个Server节点中都有一份,查看获取(这里是上面一步查到的token令牌凭证)
四、将 kubeconfig 文件拷贝至默认的目录下
K3s 默认的配置文件路径,Helm无法识别,将 /etc/rancher/k3s/k3s.yaml 软连接到 ~/.kube/config,供 helm 使用
mkdir ~/.kube && ln -s /etc/rancher/k3s/k3s.yaml ~/.kube/config
五、安装Rancher
1.安装helm
wget https://pkg.goodrain.com/pkg/helm && chmod +x helm && mv helm /usr/local/bin/
2.添加rancher镜像源
# 添加rancher镜像源
helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable
# 更新源
helm repo update
3.创建命名空间
需要定义一个 Kubernetes Namespace,在 Namespace 中安装由 Chart
创建的资源。这个命名空间的名称为cattle-system:
kubectl create namespace cattle-system
4.安装 CustomResourceDefinition 资源
如果你手动安装了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
5.添加Jetstack Helm仓库
helm repo add jetstack https://charts.jetstack.io
6. 更新本地仓库缓存
helm repo update
7.安装 cert-manager
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.5.1
查看 cert-manager
kubectl get pods --namespace cert-manager
8.安装Rancher
这里使用Let’s Encrypt证书证书方式直接安装
安装时可设置的选项,可查看官方文档: https://docs.rancher.cn/docs/rancher2.5/installation/install-rancher-on-k8s/chart-options/_index/
如下为对应的命令空间 cattle-system 在上面创建的
如下 registry.cn-hangzhou.aliyuncs.com/rancher/rancher 为对应的rancher镜像
如下 replicas 为设置 Rancher 部署所使用的复制数量(副本数) 默认为 3
如下 ingress.tls.source 设置为 letsEncrypt (表示使用Let’s Encrypt证书)
如果要安装一个特定的 Rancher 版本, 使用–version 标志,例如:–version 2.3.6
对应 etsEncrypt.email 为证书到期通知的邮箱地址
如果你安装的是 alpha 版本,Helm 要求在命令中加入 –devel 选项
helm install rancher rancher-stable/rancher --namespace cattle-system --set hostname=demo.rancher.com --set replicas=3 --set ingress.tls.source=letsEncrypt --set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher --set letsEncrypt.email=[email protected]
如果需要指定安装版本,则可以添加 --version v2.5.12 示例如下:
helm install rancher rancher-stable/rancher \
--version v2.5.12 \
--namespace cattle-system \
--set hostname=demo.rancher.com\
--set ingress.tls.source=letsEncrypt \
--set rancherImage=registry.cn-hangzhou.aliyuncs.com/rancher/rancher \
--set letsEncrypt.email=[email protected]
六、验证 rancher
kubectl -n cattle-system get deploy rancher
七、查看rancher登录密码
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'