searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

rancher部署及对接多集群

2024-06-24 09:35:37
5
0

Rancher是一个开源的容器管理平台,它提供了全方位的解决方案来简化在生产环境中部署和管理容器化应用程序的过程。Rancher让使用者能够轻松地在任何基础设施上(包括物理机、虚拟机、公有云或私有云)创建和管理Kubernetes集群。

Rancher的核心特性包括:

  1. Kubernetes管理:Rancher可以部署和管理多个Kubernetes集群,无论是本地部署还是云上的集群,都能通过统一的界面进行集中管理和操作。

  2. 多集群管理:用户可以在单个Rancher界面中同时管理多个Kubernetes集群,实现资源和策略的统一配置与监控。

  3. 应用商店(App Catalog):Rancher集成了应用商店,用户可以从预置的模板快速部署常用的应用程序和服务,简化了应用部署流程。

  4. 网络与存储插件:支持多种网络和存储解决方案,如Calico、Flannel、Longhorn等,以满足不同场景下的需求。

  5. 访问控制与安全:提供了细致的访问控制和安全策略管理功能,支持角色-Based Access Control (RBAC),确保集群和应用的安全性。

  6. CI/CD集成:与Jenkins、GitLab CI/CD等工具集成,支持持续集成和持续部署流程,加速软件交付过程。

  7. 监控与日志:内置对集群和应用程序的监控与日志收集功能,可以帮助运维人员快速定位问题。

总的来说,Rancher降低了采用容器技术和Kubernetes的门槛,使得企业能够更加高效、便捷地运行和维护容器化应用。

rancher在线部署:

1、部署cert-manager.crds
kubectl apply -f github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.crds.yaml

2、在线部署cert-manager
helm repo add jetstack charts.jetstack.io
helm install cert-manager  jetstack/cert-manager --namespace cert-manager --version v1.14.5

3、在线部署rancher
helm repo add rancher-stable releases.rancher.com/server-charts/stable
helm install rancher rancher-stable/rancher --namespace cattle-system --set hostname=rancher.example.com --version 2.8.3 --set bootstrapPassword=xxxxxx

rancher注册已有集群:

1、rancher部署后默认会部署ingress资源,通过ingress-nginx转发rancher对外访问。

[root@master ~]# kubectl get ingress -A

NAMESPACE       NAME      CLASS   HOSTS                 ADDRESS         PORTS     AGE

cattle-system   rancher   nginx   rancher.example.com   10.233.55.178   80, 443   13d

编辑ingress资源添加ingressClassName: nginx

kubectl edit ingress -n cattle-system   rancher -o yaml

spec:

  ingressClassName: nginx

  rules:

  - host: rancher.example.com

    http:

      paths:

      - backend:

          service:

            name: rancher

            port:

              number: 80

        path: /

        pathType: ImplementationSpecific

  tls:

  - hosts:

    - rancher.example.com

    secretName: tls-rancher-ingress

注意,部署rancher时合理设置host域名rancher.example.com

2、保证域名rancher.example.com+ingress-nginxnodeport可以正常访问rancher

[root@master ~]# kubectl get svc

NAME                       TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE

ingress-nginx-controller   NodePort    10.233.55.178   <none>        80:32438/TCP,443:30828/TCP   13d

则访问rancher使用:rancher.example.com:30828/dashboard/home

3、导入已有集群

集群管理->导入已有集群

 

点击通用

 

输入集群名称->创建

 

4、获取rancher import模板,保存到目标集群节点上

rancher.example.com:30828/v3/import/szv5dnsw2ztcd52lf8bslqxjpmlj5pk9bk597mzxss9mh7xk97q84h_c-m-fltmf9mc.yaml

rancher-import.yaml

修改上述模板中错误字段:beta.kubernetes.io/os -> kubernetes.io/os

5、修改目标集群中coredns configmap资源,添加自定义域名

kubectl edit cm -n kube-system coredns  -o yaml

apiVersion: v1

data:

  Corefile: |

    .:53 {

        errors

        health {

           lameduck 5s

        }

        ready

        kubernetes cluster.local in-addr.arpa ip6.arpa {

           pods insecure

           fallthrough in-addr.arpa ip6.arpa

           ttl 30

        }

        hosts {

            192.168.10.101 rancher.example.com

            fallthrough

        }

        prometheus :9153

        forward . /etc/resolv.conf {

           max_concurrent 1000

           prefer_udp

        }

        cache 30

        loop

        reload

        loadbalance

    }

kind: ConfigMap

6、执行kubectl apply -f rancher-import.yaml部署rancher agent

7、观察rancher中目标集群状态变为Active则接入成功(正常3分钟左右)

 

 

0条评论
0 / 1000