为了月入税后两万继续卷~~~~
一 、什么是Rancher
Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。
Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现有 Kubernetes 集群。
Rancher 基于 Kubernetes 添加了新的功能,包括统一所有集群的身份验证和 RBAC,让系统管理员从一个位置控制全部集群的访问。
此外,Rancher 可以为集群和资源提供更精细的监控和告警,将日志发送到外部提供商,并通过应用商店(Application Catalog)直接集成 Helm。如果你拥有外部 CI/CD 系统,你可以将其与 Rancher 对接。没有的话,你也可以使用 Rancher 提供的 Fleet 自动部署和升级工作负载。
Rancher 是一个 全栈式 的 Kubernetes 容器管理平台,为你提供在任何地方都能成功运行 Kubernetes 的工具
Rancher 为 DevOps 工程师提供简单直接的用户界面,以管理其应用负载。用户不需要对 Kubernetes 有非常深入的了解,即可使用 Rancher。Rancher 应用商店包含一套实用的 DevOps 开发工具。Rancher 获得了多种云原生生态系统产品的认证,包括安全工具、监控系统、容器镜像仓库、存储和网络驱动等。
下图讲述了 Rancher 在 IT 管理团队和 DevOps 开发团队之间扮演的角色。DevOps 团队把他们的应用部署在他们选择的公有云或私有云上。IT 管理员负责查看并管理用户、集群、云服务的权限。
二、Rancher API Server的功能
Rancher API Server 是基于嵌入式 Kubernetes API Server 和 etcd 数据库建立的,它提供了以下功能:
授权和基于角色的权限控制(RBAC)
用户管理:Rancher API Server 除了管理本地用户,还管理用户用来范文外部服务所需的认证信息,如登录 Active Directory 和 GitHub 所需的账号密码。
授权:Rancher API Server 可以管理访问控制策略和安全策略
使用Kubernetes的功能
配置Kubernetes 集群:Rancher API Server可以在已有节点上配置Kubernetes,或进行Kubernetes版本升级
管理应用商店:Rancher支持使用Helm Chart应用商店实现轻松重复部署应用
管理项目:项目由集群中多个命名空间和访问控制策略组成,是 Rancher 中的一个概念,Kubernetes 中并没有这个概念。你可以使用项目实现以组为单位,管理多个命名空间,并进行 Kubernetes 相关操作。Rancher UI 提供用于项目管理和项目内应用管理的功能。
Fleet持续交付:在 Rancher 中,你可以使用 Fleet持续交付将应用程序从 Git 仓库部署到目标下游 Kubernetes 集群,无需任何手动操作。
Istio:Rancher与Istio集成,使得管理员或集群所有者可以将 Istio 交给开发者,然后开发者使用 Istio 执行安全策略,排查问题,或为蓝绿部署,金丝雀部署,和 A/B 测试进行流量管理。
配置云基础设施
同步节点信息:Rancher API Server 可以同步所有集群中全部节点的信息。
配置云基础设施:如果你为 Rancher 配置了云提供商,Rancher 可以在云端动态配置新节点和持久化存储。
查看集群信息
日志管理:Rancher 可以与多种 Kubernetes 集群之外的主流日志管理工具集成。
监控:你可以使用 Rancher,通过业界领先并开源的 Prometheus 来监控集群节点、Kubernetes 组件和软件部署的状态和进程。
告警:为了保证集群和应用的正常运行,提高公司的生产效率,你需要随时了解集群和项目的计划内和非计划事件。
三、部署Rancher
安装要求:安装要求 | Rancher
Rancher和kubernetes对应版本:Rancher Manager v2.8.5 | SUSE
建议在 Kubernetes 集群上安装 Rancher。高可用的 Kubernetes 安装的情况下,一个 Kubernetes 集群包含三个运行 Rancher Server 组件的节点。持久层(etcd)也在这三个节点上进行复制,以便在其中一个节点发生故障时提供冗余和数据复制。
1、添加Helm Chart仓库
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
2、获取最新的 Rancher Chart。
helm fetch rancher-<CHART_REPO>/rancher
如需下载特定的Rancher版本,用 Helm --version
参数指定版本
helm fetch rancher-stable/rancher --version=v2.4.8
3、选择SSL配置
Rancher Server 默认设计为安全的,并且需要 SSL/TLS 配置。
在离线的 Kubernetes 集群中安装 Rancher,建议使用以下两种证书生成方式。
配置 | Chart选项 | 描述 | 是否需要cert-manager |
---|---|---|---|
Rancher生成的自签证书 | ingress.tls.source=rancher | 使用 Rancher 生成的 CA 签发的自签名证书。此项是默认选项。在渲染 Helm 模板的时候不需要传递此项。 | 是 |
已有的证书 | ingress.tls.source=secret | 通过创建 Kubernetes 密文使用你自己的证书文件。在渲染 Rancher Helm 模板时必须传递此选项。 | 否 |
4、获取Cert-Manager Chart
1、添加cert-manager仓库
helm repo add jetstack https://charts.jetstack.io
helm repo update
2、获取cert-manager Chart。从 Helm Chart 仓库中获取最新可用的 cert-manager Chart
helm fetch jetstack/cert-manager
3、检索cert-manager CRD。为 cert-manager 下载所需的 CRD 文件
curl -L -o cert-manager-crd.yaml https://github.com/cert-manager/cert-manager/releases/download/<VERSION>/cert-manager.crds.yaml
4、安装cert-manager
kubectl create namespace cert-manager
kubectl apply -f cert-manager/cert-manager-crd.yaml
helm install cert-manager ./cert-manager-<VERSION>.tgz \
--namespace cert-manager \
--set image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-controller \
--set webhook.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-webhook \
--set cainjector.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-cainjector \
--set startupapicheck.image.repository=<REGISTRY.YOURDOMAIN.COM:PORT>/quay.io/jetstack/cert-manager-ctl
记住要设置 image.repository
选项
5、安装Rancher
1、使用 kubectl 为 Rancher 创建命名空间
kubectl create namespace cattle-system
2、执行helm
helm install rancher ./rancher-<VERSION>.tgz \
--namespace cattle-system \
--set hostname=<RANCHER.YOURDOMAIN.COM> \
--set certmanager.version=<CERTMANAGER_VERSION> \
--set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
--set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 设置在 Rancher 中使用的默认私有镜像仓库
--set useBundledSystemChart=true # 使用打包的 Rancher System Chart
VERSION: 输出压缩包的版本号。
RANCHER.YOURDOMAIN.COM:指向负载均衡器的 DNS 名称。
REGISTRY.YOURDOMAIN.COM:PORT:私有镜像仓库的 DNS 名称。
CERTMANAGER_VERSION:在 K8s 集群上运行的 cert-manager 版本。
6、(补充)Docker安装
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-e CATTLE_SYSTEM_DEFAULT_REGISTRY=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 设置在 Rancher 中使用的默认私有镜像仓库
-e CATTLE_SYSTEM_CATALOG=bundled \ # 使用打包的 Rancher System Chart
--privileged \
<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher:<RANCHER_VERSION_TAG>
<REGISTRY.YOURDOMAIN.COM:PORT> 私有镜像仓库的 URL 和端口
<RANCHER_VERSION_TAG> 安装 Rancher 版本的版本标签。
四、其他安装选项
docker自定义证书安装:Docker 安装命令 | Rancher
k8s自定义安装:安装 Rancher | Rancher
使用Docker将Rancher安装到单个节点中:使用 Docker 将 Rancher 安装到单个节点中 | Rancher