注意:ubuntu 20.0.4环境安装
第一步 安装k3s server节点
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \
K3S_KUBECONFIG_OUTPUT=/root/.kube/config INSTALL_K3S_VERSION=v1.20.15+k3s1 sh -s - server --datastore-endpoint="mysql://root:root@tcp(192.168.0.145:3306)/k3s"
- 命令解析
K3S_KUBECONFIG_OUTPUT=/root/.kube/config (不指定helm没法使用)
第二步 安装helm
第三步 确认k3s是否安装成功
systemctl start k3s.service //启动k3s服务
systemctl status k3s.service //查看k3s服务状态
执行命令后出现如下图说明k3s安装成功,已经启动
第四步 查看节点服务和helm是否正常
kubectl get node // 查看节点服务
kubectl delete node 节点name名称 // 删除节点
kubectl get nodes -o wide // 查看节点ip
如图 kubectl 命令行工具可以使用kubectl官网
说明:kubectl不需要我们另安装,在安装k3s时默认就安装好了
如何helm 可以使用
通过以上四个步骤,k3s服务节点安装成功了,下面我们在k3s上安装rancher
第五步 k3s上安装rancher
官网链接
Helm Chart 安装 Rancher
5.1 添加 Helm Chart 仓库
helm repo add rancher-stable http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable
5.2 为 Rancher 创建 Namespace
kubectl create namespace cattle-system
5.3 选择你的 SSL 选项
Rancher Server 默认需要 SSL/TLS 配置来保证访问的安全性。
这里我选择自己生成的已有证书
5.4 证书生成
注意: 可以使用 一键生成 ssl 自签名证书脚本 来快速生成符合 rancher 要求的自签名证书。
生成示例:
--ssl-domain: 生成ssl证书需要的主域名,如不指定则默认为www.rancher.local,如果是ip访问服务,则可忽略;
--ssl-trusted-ip: 一般ssl证书只信任域名的访问请求,有时候需要使用ip去访问server,那么需要给ssl证书添加扩展IP,多个IP用逗号隔开;
--ssl-trusted-domain: 如果想多个域名访问,则添加扩展域名(TRUSTED_DOMAIN),多个TRUSTED_DOMAIN用逗号隔开;
--ssl-size: ssl加密位数,默认2048;
--ssl-cn: 国家代码(2个字母的代号),默认CN;
./create_self-signed-cert.sh --ssl-domain=rancher.test.com --ssl-trusted-ip=192.168.0.118 --ssl-size=2048 --ssl-date=3650
如图生成证书相关文件:
5.5 检查证书
openssl verify -CAfile cacerts.pem tls.crt 应该返回状态为 ok
5.6 检查域名和扩展ip是否正确
openssl x509 -in tls.crt -noout -text
5.7 正式安装rancher 服务
注意:
- –set hostname = 生成证书时的域名
- 将replicas设置为 Rancher 部署所使用的复制数量。默认为 3;如果你的集群中少于 3 个节点,你应填写实际节点数量。
- 设置ingress.tls.source为secret。
- 要安装一个特定的 Rancher 版本,使用–version 标志,例如:–version 2.3.6
- 如果你使用的是私有 CA 证书,请在命令中增加 --set privateCA=true。
这里我们选择安装rancher 2.5.15版本,执行下列命令安装rancher
helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.test.com \
--set replicas=2 \
--version 2.5.15 \
--set ingress.tls.source=secret \
--set privateCA=true
5.8 验证 Rancher Server 是否已成功部署
执行下列命令后,需要耐心等待
kubectl -n cattle-system rollout status deploy/rancher
5.9 检查 deployment 的状态
kubectl -n cattle-system get deploy rancher
DESIRED和AVAILABLE应该显示相同的个数
到这一步,我们的rancher服务部署成功了
6.0 发布证书
参考添加 TLS Secret 发布证书文件,以便 Rancher 和 ingress 控制器可以使用它们。
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--cert=tls.crt \
--key=tls.key
kubectl -n cattle-system create secret generic tls-ca \
--from-file=cacerts.pem=./cacerts.pem
6.1查看rancher日志是否有错误
kubectl logs -f -l app=rancher -n cattle-system
如图没有任务错误
6.2 配置k3s所在的主机hosts
vi /etc/hosts
6.3 开始访问rancher server
因为我们是在局域网的服务器上部署的rancher server,如果我们在其他电脑上的浏览器上访问rancher 服务的话,需要在对应的电脑hosts文件配置我们的rancher 域名及ip
如下图:
6.4 在已经配置好的hosts文件电脑浏览器上访问rancher
浏览器输入:https://rancher.test.com
大功告成