k8s上部署rancher
Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。Rancher 基于 Kubernetes 添加了新的功能,包括统一所有集群的身份验证和 RBAC,让系统管理员从一个位置控制全
一、什么事rancher
Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。
Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。
Rancher 基于 Kubernetes 添加了新的功能,包括统一所有集群的身份验证和 RBAC,让系统管理员从一个位置控制全部集群的访问。
此外,Rancher 可以为集群和资源提供更精细的监控和告警,将日志发送到外部提供商,并通过应用商店(Application Catalog)直接集成 Helm。如果你拥有外部 CI/CD 系统,你可以将其与 Rancher 对接。没有的话,你也可以使用 Rancher 提供的 Fleet 自动部署和升级工作负载。
Rancher 是一个 全栈式 的 Kubernetes 容器管理平台,为你提供在任何地方都能成功运行 Kubernetes 的工具。
二、添加helm chart仓库
一、latest:建议用于最新功能
# helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
二、stable: 用于生产环境, 稳定
# helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
三、Alpha: 发布实验性预览
# helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha
注意:不支持升级到 Alpha 版、从 Alpha 版升级或在 Alpha 版之间升级。
三、为rancher创建命名空间
kubectl create namespace cattle-system
四、选择ssl配置
Rancher Management Server 默认需要 SSL/TLS 配置来保证访问的安全性。
可以从以下三种证书来源中选择一种,用于在 Rancher Server 中终止 TLS:
- Rancher 生成的 TLS 证书:要求你在集群中安装
cert-manager
。Rancher 使用cert-manager
签发并维护证书。Rancher 会生成自己的 CA 证书,并使用该 CA 签署证书。然后cert-manager
负责管理该证书。 - Let's Encrypt:Let's Encrypt 选项也需要使用
cert-manager
。但是,在这种情况下,cert-manager 与 Let's Encrypt 的特殊颁发者相结合,该颁发者执行获取 Let's Encrypt 颁发的证书所需的所有操作(包括请求和验证)。此配置使用 HTTP 验证(HTTP-01
),因此负载均衡器必须具有可以从互联网访问的公共 DNS 记录。 - 你已有的证书:使用已有的 CA 颁发的公有或私有证书。Rancher 将使用该证书来保护 WebSocket 和 HTTPS 流量。在这种情况下,你必须上传名称分别为
tls.crt
和tls.key
的 PEM 格式的证书以及相关的密钥。如果你使用私有 CA,则还必须上传该 CA 证书。这是由于你的节点可能不信任此私有 CA。Rancher 将获取该 CA 证书,并从中生成一个校验和,各种 Rancher 组件将使用该校验和来验证其与 Rancher 的连接。
配置 | Helm Chart 选项 | 是否需要 cert-manager |
---|---|---|
Rancher 生成的证书(默认) | ingress.tls.source=rancher | 是 |
Let’s Encrypt | ingress.tls.source=letsEncrypt | 是 |
你已有的证书 | ingress.tls.source=secret | 否 |
这里选择的是用用rancher生成的证书。
五、安装cert-manager
## 如果你手动安装了CRD,而不是在 Helm 安装命令中添加了 `--set installCRDs=true` 选项,你应该在升级 Helm Chart 之前升级 CRD 资源。
# kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml
# kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.3/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
六、部署
### 使用Rancher生成的证书
默认情况是使用 Rancher 生成 CA,并使用 cert-manager 颁发用于访问 Rancher Server 接口的证书。
由于 rancher 是 ingress.tls.source 的默认选项,因此在执行 helm install 命令时,我们不需要指定 ingress.tls.source。
将 hostname 设置为解析到你的负载均衡器的 DNS 名称。
将 bootstrapPassword 设置为 admin 用户独有的值。
如果你需要安装指定的 Rancher 版本,使用 --version 标志,例如 --version 2.7.0。
对于 Kubernetes v1.25 或更高版本,使用 Rancher v2.7.2-v2.7.4 时,将 global.cattle.psp.enabled 设置为 false。对于 Rancher v2.7.5 及更高版本来说,这不是必需的,但你仍然可以手动设置该选项。
# helm repo update
# helm search repo rancher
# helm pull rancher-stable/rancher
七、编辑values.yaml
八、运行
建议提前下载好所有镜像
# helm upgrade --install rancher -n cattle-system . -f values.yaml
在hosts文件中添加域名对应的IP地址:
192.168.110.111 rancherpro.test.com
192.168.110.112 rancherpro.test.com
# 进入容器,随机生成密码
# kubectl exec -ti rancher-XXXXXXXX sh -n cattle-system
sh-4.4# reset-password
账户:admin
密码:是使用reset-password生成的
九、参考
更多推荐
所有评论(0)