容器管理平台 Rancher 介绍

容器管理平台 Rancher 介绍,第1张

容器管理平台 Rancher 介绍

文章目录
  • 前言
  • 一、Rancher 概述
  • 二、Rancher Server 架构
  • 三、安装指南
  • 四、安装 Helm
  • 五、安装 Ingress-nginx
    • 5.1 拉取镜像
    • 5.2 修改 yaml 文件
    • 5.3 安装 Ingress-nginx
  • 六、安装 Rancher 2.5.9 HA
    • 6.1 添加 Helm Chart 仓库
    • 6.2 为 Rancher 创建命名空间
    • 6.3 安装证书管理器
      • (1) 创建 cert-manager 命名空间
      • (2) 添加 Jetstack Helm 存储库
      • (3) 更新本地 Helm 图表存储库缓存
      • (4) 安装 cert-manager 自定义所需的自定义资源
      • (5) 安装 cert-manager
      • (6) 验证 cert-manager 证书管理器是否安装成功
    • 6.4 安装 Rancher HA
      • (1) 使用 helm 安装 Rancher
      • (2) 查看 Rancher 安装 过程
      • (3) 查看 Rancher 的 pod 状态
    • 6.5 访问 Rancher UI 页面
      • (1) 查看 Ingress-nginx 映射出来的端口
      • (2) 配置 hosts 文件
      • (3) 访问 Rancher-UI


https://www.zhihu.com/question/309076492/answer/579260940
https://cloud.tencent.com/developer/article/1444257
https://www.cnblogs.com/varden/p/15013794.html


前言

  Rancher 是为使用容器的公司打造的容器管理平台。Rancher 简化了使用 Kubernetes 的流程,开发者可以随处运行 Kubernetes(Run Kubernetes Everywhere),满足 IT 需求规范,赋能 DevOps 团队。


一、Rancher 概述

  Rancher 有分为 v1 和 v2 版本,都是提供容器调度与编排,不同之处在于在 k8s 盛行之前有许多人都搞过容器编排,所以 rancher v1 上会有几种不同的编排模式,例如 cattle,swarm,kubernetes。从这里可以看出 Rahcner v1 时代,它给自己的定位是各种编排工具的上层,也就是 k8s 的上层,然后你再通过它去管理 k8s。因为 k8s 后来发展得势不可挡,所以 Rancher v2 应运而生,移除了其他类型的编排工具,只剩下 k8s。

2.0 包含许多新功能,例如:

  • 内置 CI/CD
  • 告警和日志收集
  • 多集群管理
  • Rancher Kubernetes Engine(RKE)
  • 与云 Kubernetes 服务(如 GKE,EKS 和 AKS)集成

  Rancher 这种做法放在云厂商就是:阿里云的 k8s 服务,谷歌的 k8s 服务亚马逊的 k8s 服务,他们都以 k8s 为底层核心调度系统,然后开发一些方便企业开发运维的工具。所以企业内部测试环境一般可以直接使用 rancher 去管理 k8s 或者使用 Rancher 去初始化一个 k8s 集群。如果要自建私有云,也可以考虑使用 Rancher,当然云厂商也有私有云的容器集群解决方案,可自行选择。

官网:
https://docs.rancher.cn/
docs:
https://rancher.com/docs/rancher/v2.6/en/
https://docs.rancher.cn/docs/rancher2.5/overview/_index/


二、Rancher Server 架构

  Rancher Server 由认证代理(Authentication Proxy)、Rancher API Server、集群控制器(Cluster Controller)、etcd 节点和集群 Agent(Cluster Agent) 组成。除了集群 Agent 以外,其他组件都部署在 Rancher Server 中。

  您可以在单个节点或高可用的 Kubernetes 集群上安装 Rancher。由于单节点安装只适用于开发和测试环境,而且单节点和高可用集群之间无法进行数据迁移,所以我们建议您从一开始就使用高可用的 Kubernetes 集群来部署 Rancher Server,而且您需要分开部署运行 Rancher Server 的集群和运行自己业务的下游集群。

  用户通过 Rancher Server 管控 Rancher 部署的 Kubernetes 集群(RKE 集群)和托管的 Kubernetes 集群的(EKS)集群的流程。以用户下发指令为例,指令的流动路径如下:

  • 首先,用户通过 Rancher UI(即 Rancher 控制台) Rancher 命令行工具(Rancher CLI)输入指令;直接调用 Rancher API 接口也可以达到相同的效果。
  • 用户通过 Rancher 的代理认证后,指令会进一步下发到 Rancher Server 。
  • 与此同时,Rancher Server 也会执行容灾备份,将数据备份到 etcd 节点。
  • 然后 Rancher Server 把指令传递给集群控制器。集群控制器把指令传递到下游集群的 Agent,最终通过 Agent 把指令下发到指定的集群中。

如果 Rancher Server 出现问题,我们也提供了备用方案,您可以通过授权集群端点管理集群。

  考虑到性能表现和安全因素,我们建议您使用两个 Kubernetes 集群,分开部署 Rancher Server 和工作负载。部署 Rancher Server 后,您可以创建或导入集群,然后在这些集群上运行您的工作负载。

具体参考:
https://docs.rancher.cn/docs/rancher2.5/overview/architecture-recommendations/_index


三、安装指南

在 v2.4 之前的 Rancher 中,Rancher 服务器需要运行在 RKE Kubernetes 集群上。
在 Rancher v2.4.x 中,Rancher 需要运行在 RKE Kubernetes 集群或 K3s Kubernetes 集群上。
在 Rancher v2.5 中,Rancher 可以运行在任何 Kubernetes 集群上。

安装参考:
https://docs.rancher.cn/docs/rancher2.5/installation/_index

前置准备
安装 K8S 集群(参考:kubeadm 安装 k8s-1.21.2)
安装 Ingress-nginx(参考:基于 K8S 1.21.2 集群安装 Ingress-Nginx 0.48.1)
安装 helm(参考:安装 Helm 3)

四、安装 Helm

master 节点

[root@master ~]# wget http://101.34.22.188/k8s/helm-v3.6.3-linux-amd64.tar.gz &> /dev/null
[root@master ~]# tar xf helm-v3.6.3-linux-amd64.tar.gz 
[root@master ~]# mv linux-amd64/helm /usr/local/bin/
[root@master ~]# chmod +x /usr/local/bin/helm
[root@master ~]# echo 'source <(helm completion bash)' >> /etc/profile
[root@master ~]# source /etc/profile
[root@master ~]# helm version
version.BuildInfo{Version:"v3.6.3", GitCommit:"d506314abfb5d21419df8c7e7e68012379db2354", GitTreeState:"clean", GoVersion:"go1.16.5"}
五、安装 Ingress-nginx
  • Github 网址:https://github.com/kubernetes/ingress-nginx/
  • 版本支持:
Ingress-nginx versionk8s supported versionAlpine VersionNginx Versionv0.48.11.21, 1.20, 1.193.13.51.20.1v0.47.01.21, 1.20, 1.193.13.51.20.1v0.46.01.21, 1.20, 1.193.13.21.19.6 5.1 拉取镜像

以下 *** 作需要在 K8S 集群所有机器都执行

docker pull registry.cn-hangzhou.aliyuncs.com/kubernetes-fan/ingress-nginx:v0.48.1
docker images

将从阿里云拉取的镜像,打个 tag 标签,更改为官方镜像名

#如果可以访问外网不用这么麻烦
docker tag registry.cn-hangzhou.aliyuncs.com/kubernetes-fan/ingress-nginx:v0.48.1 k8s.gcr.io/ingress-nginx/controller:v0.48.1
docker images

将从阿里云镜像仓库拉取的镜像删除

docker rmi registry.cn-hangzhou.aliyuncs.com/kubernetes-fan/ingress-nginx:v0.48.1
docker images

5.2 修改 yaml 文件

master 节点

#wget http://101.34.22.188/k8s/yaml/deploy.yaml
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.48.1/deploy/static/provider/baremetal/deploy.yaml

#将原文件下行内容
image: k8s.gcr.io/ingress-nginx/controller:v0.48.1@sha256:e9fb216ace49dfa4a5983b183067e97496e7a8b307d2093f4278cd550c303899
#修改为如下内容
image: k8s.gcr.io/ingress-nginx/controller:v0.48.1

修改后的内容如下:

......
318     spec:
319       dnsPolicy: ClusterFirst
320       containers:
321         - name: controller
322           image: k8s.gcr.io/ingress-nginx/controller:v0.48.1	#这里
323           imagePullPolicy: IfNotPresent
324           lifecycle:
325             preStop:
326               exec:
327                 command:
328                   - /wait-shutdown
......
5.3 安装 Ingress-nginx

master 节点

kubectl apply -f deploy.yaml
kubectl get pods -o wide -n ingress-nginx
kubectl get service -n ingress-nginx
curl http://IP:PORT

六、安装 Rancher 2.5.9 HA 6.1 添加 Helm Chart 仓库
[root@master ~]# helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
"rancher-stable" has been added to your repositories
6.2 为 Rancher 创建命名空间
[root@master ~]# kubectl create ns cattle-system
namespace/cattle-system created
6.3 安装证书管理器

这里使用 Rancher 生成的证书,不使用外部证书。
cert-manager 证书管理器官网:https://cert-manager.io/

(1) 创建 cert-manager 命名空间
[root@master ~]# kubectl create ns cert-manager
namespace/cert-manager created
(2) 添加 Jetstack Helm 存储库
[root@master ~]# helm repo add jetstack https://charts.jetstack.io
"jetstack" has been added to your repositories
(3) 更新本地 Helm 图表存储库缓存
[root@master ~]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "jetstack" chart repository
...Successfully got an update from the "rancher-stable" chart repository
Update Complete. ⎈Happy Helming!⎈
(4) 安装 cert-manager 自定义所需的自定义资源
#wget http://101.34.22.188/k8s/yaml/cert-manager.crds.yaml
[root@master ~]# kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.4.0/cert-manager.crds.yaml
customresourcedefinition.apiextensions.k8s.io/certificaterequests.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/certificates.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/challenges.acme.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/clusterissuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/issuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/orders.acme.cert-manager.io created
(5) 安装 cert-manager
helm install 
cert-manager jetstack/cert-manager 
--namespace cert-manager 
--create-namespace 
--version v1.4.0

(6) 验证 cert-manager 证书管理器是否安装成功
[root@master ~]# kubectl get pods --namespace cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-5d7f97b46d-qqkgt              1/1     Running   0          82s
cert-manager-cainjector-69d885bf55-bpnpp   1/1     Running   0          82s
cert-manager-webhook-54754dcdfd-zcbjj      1/1     Running   0          82s
6.4 安装 Rancher HA (1) 使用 helm 安装 Rancher
helm install rancher rancher-stable/rancher 
--namespace cattle-system 
--set hostname=rancher.my.org 
--set replicas=3 
--version 2.5.9

--set hostname 自己要设置的域名
--version 安装的 Rancher 版本
删除参考:https://blog.csdn.net/qq_42997214/article/details/120994019

(2) 查看 Rancher 安装 过程
[root@master ~]# kubectl -n cattle-system rollout status deploy/rancher
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
Waiting for deployment "rancher" rollout to finish: 1 of 3 updated replicas are available...
Waiting for deployment "rancher" rollout to finish: 2 of 3 updated replicas are available...
......
(3) 查看 Rancher 的 pod 状态
[root@master ~]# kubectl get pods -o wide -n cattle-system
NAME                               READY   STATUS      RESTARTS   AGE   IP               NODE     NOMINATED NODE   READINESS GATES
helm-operation-cd4h4               0/2     Completed   0          16m   10.244.140.78    node02              
helm-operation-gjrjn               0/2     Completed   0          17m   10.244.196.136   node01              
helm-operation-qmj2t               0/2     Completed   0          17m   10.244.140.75    node02              
helm-operation-zbn5m               2/2     Running     0          18m   10.244.196.135   node01              
rancher-5dfdd779dc-fs2rx           1/1     Running     0          21m   10.244.140.70    node02              
rancher-5dfdd779dc-nk8lf           1/1     Running     0          21m   10.244.196.133   node01              
rancher-5dfdd779dc-x22cl           1/1     Running     0          21m   10.244.140.71    node02              
rancher-webhook-6cccfd96b5-tk2xr   1/1     Running     0          16m   10.244.140.77    node02              
6.5 访问 Rancher UI 页面 (1) 查看 Ingress-nginx 映射出来的端口
[root@master ~]# kubectl get service -n ingress-nginx
NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.99.125.52            80:30421/TCP,443:30741/TCP   48m
ingress-nginx-controller-admission   ClusterIP   10.104.56.126           443/TCP                      48m
(2) 配置 hosts 文件

两个文件:
linux 系统:/etc/hosts
windows 主机:C:WindowsSystem32driversetchosts

添加映射:

#因为 Ingress-nginx 的 Type 类型是 NodePort,所以 hosts 文件配置映射,可以选 K8S 机器中任意一台 IP 即可
192.168.10.100 rancher.my.org
(3) 访问 Rancher-UI

访问

https://rancher.my.org:PORT/


设置新密码,其他默认

其余参考:
基于 K8S 1.21.2 集群安装 Rancher 2.5.9 HA

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5680595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存