Rancher Server中怎么部署本地多节点K8S集群

发布时间:2021-07-30 17:00:40 作者:Leah
来源:亿速云 阅读:383

Rancher Server中怎么部署本地多节点K8S集群

引言

Kubernetes(K8S)作为容器编排的事实标准,已经成为现代云原生应用的核心基础设施。然而,对于初学者或小型团队来说,部署和管理一个多节点的Kubernetes集群可能是一项复杂的任务。Rancher开源的Kubernetes管理平台,简化了Kubernetes集群的部署和管理过程。本文将详细介绍如何在Rancher Server中部署一个本地多节点的Kubernetes集群。

准备工作

在开始部署之前,确保你已经完成了以下准备工作:

  1. 硬件资源:至少需要三台物理机或虚拟机,分别作为Rancher Server、Kubernetes Master节点和Kubernetes Worker节点。
  2. 操作系统:所有节点应安装相同的Linux发行版,推荐使用Ubuntu 18.04或更高版本。
  3. 网络配置:确保所有节点之间可以互相通信,并且能够访问互联网。
  4. Docker:在所有节点上安装Docker,版本要求为18.09.2或更高。
  5. Rancher CLI:在Rancher Server节点上安装Rancher CLI工具。

安装Rancher Server

1. 拉取Rancher Server镜像

在Rancher Server节点上,使用以下命令拉取Rancher Server的Docker镜像:

docker pull rancher/rancher:latest

2. 启动Rancher Server容器

使用以下命令启动Rancher Server容器:

docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest

3. 访问Rancher Web UI

在浏览器中访问https://<Rancher-Server-IP>,首次访问时会提示设置管理员密码。设置完成后,进入Rancher的Web UI。

创建Kubernetes集群

1. 添加集群

在Rancher Web UI中,点击“添加集群”按钮,选择“自定义”选项。

2. 配置集群

在集群配置页面,填写以下信息:

3. 生成节点命令

在集群配置完成后,Rancher会生成一个用于添加节点的命令。复制该命令,稍后将在各个节点上执行。

部署Master节点

1. 登录Master节点

使用SSH登录到Master节点。

2. 执行节点命令

在Master节点上执行Rancher生成的节点命令。命令示例如下:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.8 --server https://<Rancher-Server-IP> --token <token> --ca-checksum <checksum> --etcd --controlplane --worker

3. 验证Master节点

在Rancher Web UI中,查看集群状态,确保Master节点已成功加入集群。

部署Worker节点

1. 登录Worker节点

使用SSH登录到Worker节点。

2. 执行节点命令

在Worker节点上执行Rancher生成的节点命令。命令示例如下:

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.5.8 --server https://<Rancher-Server-IP> --token <token> --ca-checksum <checksum> --worker

3. 验证Worker节点

在Rancher Web UI中,查看集群状态,确保Worker节点已成功加入集群。

配置Kubernetes集群

1. 配置网络插件

在Rancher Web UI中,进入集群的“项目/命名空间”页面,选择“系统项目”,然后点击“部署YAML”按钮。使用以下YAML配置部署网络插件(以Flannel为例):

apiVersion: v1
kind: Namespace
metadata:
  name: kube-system
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: kube-flannel-ds
  namespace: kube-system
  labels:
    tier: node
    app: flannel
spec:
  selector:
    matchLabels:
      app: flannel
  template:
    metadata:
      labels:
        tier: node
        app: flannel
    spec:
      containers:
      - name: kube-flannel
        image: quay.io/coreos/flannel:v0.13.0
        command:
        - /opt/bin/flanneld
        args:
        - --ip-masq
        - --kube-subnet-mgr
        resources:
          requests:
            cpu: "100m"
            memory: "50Mi"
          limits:
            cpu: "100m"
            memory: "50Mi"
        securityContext:
          privileged: false
          capabilities:
            add: ["NET_ADMIN"]
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        volumeMounts:
        - name: run
          mountPath: /run
        - name: flannel-cfg
          mountPath: /etc/kube-flannel/
      volumes:
        - name: run
          hostPath:
            path: /run
        - name: flannel-cfg
          configMap:
            name: kube-flannel-cfg

2. 配置存储类

在Rancher Web UI中,进入集群的“存储”页面,点击“添加存储类”按钮。填写存储类名称和配置参数,例如使用NFS作为存储后端。

3. 配置Ingress控制器

在Rancher Web UI中,进入集群的“工作负载”页面,点击“部署YAML”按钮。使用以下YAML配置部署Ingress控制器(以Nginx为例):

apiVersion: v1
kind: Namespace
metadata:
  name: ingress-nginx
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-ingress-controller
  namespace: ingress-nginx
  labels:
    app: nginx-ingress
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx-ingress
  template:
    metadata:
      labels:
        app: nginx-ingress
    spec:
      containers:
      - name: nginx-ingress-controller
        image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.32.0
        args:
        - /nginx-ingress-controller
        - --configmap=$(POD_NAMESPACE)/nginx-configuration
        - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
        - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
        - --publish-service=$(POD_NAMESPACE)/ingress-nginx
        - --annotations-prefix=nginx.ingress.kubernetes.io
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        ports:
        - name: http
          containerPort: 80
        - name: https
          containerPort: 443
        livenessProbe:
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
          initialDelaySeconds: 10
          timeoutSeconds: 1
        readinessProbe:
          httpGet:
            path: /healthz
            port: 10254
            scheme: HTTP
          initialDelaySeconds: 10
          timeoutSeconds: 1

验证集群

1. 查看集群状态

在Rancher Web UI中,进入集群的“仪表盘”页面,查看集群的健康状态和节点信息。

2. 部署测试应用

在Rancher Web UI中,进入集群的“工作负载”页面,点击“部署”按钮。使用以下YAML配置部署一个简单的Nginx应用:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

3. 访问测试应用

在Rancher Web UI中,进入集群的“服务发现”页面,查看Nginx服务的IP地址和端口。在浏览器中访问该地址,确保Nginx应用正常运行。

结论

通过Rancher Server,我们可以轻松地在本地部署和管理一个多节点的Kubernetes集群。Rancher提供了直观的Web UI和强大的CLI工具,使得Kubernetes集群的部署和配置变得更加简单和高效。希望本文能够帮助你成功部署一个本地多节点的Kubernetes集群,并为你的云原生应用提供坚实的基础设施支持。

推荐阅读:
  1. 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)
  2. Rancher Server如何配置多节点kubernetes集群

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rancher server

上一篇:怎么用Shell脚本实现apache日志中的状态码

下一篇:Linux CentOS系统下tomcat怎么配置ssl

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》