日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RKE部署Kubernetes集群

發布時間:2024/3/26 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RKE部署Kubernetes集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝docker

在各個節點建立自定義賬戶,使其可以用命令操作docker

useradd <user_name> passwd <user_name> usermod -aG docker <user_name> su <user_name> docker info

配置主節點到各個節點用戶的免密登錄

ssh-keygen ssh-copy-id <user_name>@<節點IP>

注意,應使用能夠操作docker的用戶(非root)做免密。在這個例子中使用rancher用戶。

下載RKE

RKE下載地址,此處下載更快

wget https://github.com/rancher/rke/releases/download/v1.1.3/rke_linux-amd64

K8S安裝

準備Kubernetes集群的節點

Kubernetes集群組件在Linux系統上以docker容器的形式運行,您可以使用熟悉的Linux發行版,只要它可以滿足Docker和Kubernetes的運行需要。

創建rke配置文件

有兩種簡單的方法可以創建cluster.yml:

  • 使用我們的最小rke配置cluster.yml并根據將使用的節點更新它;
  • 使用rke config向導式生成配置;

運行rke config配置向導

  • 選項詳解
./rke_linux-amd64 config[+] Cluster Level SSH Private Key Path [~/.ssh/id_rsa]: 使用~/.ssh/id_rsa [+] Number of Hosts [1]: 集群主機個數 [+] SSH Address of host (1) [none]: 主機1地址 [+] SSH Port of host (1) [22]: SSH端口 [+] SSH Private Key Path of host (10.180.210.237) [none]: 使用~/.ssh/id_rsa [+] SSH User of host (10.180.210.237) [ubuntu]: SSH用戶名,這里使用rancher [+] Is host (10.180.210.237) a Control Plane host (y/n)? [y]: 是否運行Control Plane [+] Is host (10.180.210.237) a Worker host (y/n)? [n]: 是否是worker [+] Is host (10.180.210.237) an etcd host (y/n)? [n]: 是否運行etcd [+] Override Hostname of host (10.180.210.237) [none]: 是否重設hostname [+] Internal IP of host (10.180.210.237) [none]: 主機內部IP [+] Docker socket path on host (10.180.210.237) [/var/run/docker.sock]: docker sock路徑,使用默認 [+] SSH Address of host (2) [none]: 主機2的配置,后續配置相同,不再贅述 ...... [+] Network Plugin Type (flannel, calico, weave, canal) [canal]: 網絡插件類型 [+] Authentication Strategy [x509]: 認證策略 [+] Authorization Mode (rbac, none) [rbac]: 認證模式 [+] Kubernetes Docker image [rancher/hyperkube:v1.15.5-rancher1]: k8s鏡像名 [+] Cluster domain [cluster.local]: 集群域名 [+] Service Cluster IP Range [10.43.0.0/16]: 集群內服務IP的范圍 [+] Enable PodSecurityPolicy [n]: pod安全策略 [+] Cluster Network CIDR [10.42.0.0/16]: 集群網絡范圍 [+] Cluster DNS Service IP [10.43.0.10]: 集群DNS的IP [+] Add addon manifest URLs or YAML files [no]: 是否增加插件manifest URL或配置文件
  • 此次實驗設置【僅供參考】
[root@node01 ~]# ./rke_linux-amd64 config [+] Cluster Level SSH Private Key Path [~/.ssh/id_rsa]: [+] Number of Hosts [1]: 3 [+] SSH Address of host (1) [none]: 192.168.1.10 [+] SSH Port of host (1) [22]: [+] SSH Private Key Path of host (192.168.1.10) [none]: ~/.ssh/id_rsa [+] SSH User of host (192.168.1.10) [ubuntu]: rancher [+] Is host (192.168.1.10) a Control Plane host (y/n)? [y]: y [+] Is host (192.168.1.10) a Worker host (y/n)? [n]: y [+] Is host (192.168.1.10) an etcd host (y/n)? [n]: y [+] Override Hostname of host (192.168.1.10) [none]: [+] Internal IP of host (192.168.1.10) [none]: [+] Docker socket path on host (192.168.1.10) [/var/run/docker.sock]: [+] SSH Address of host (2) [none]: 192.168.1.20 [+] SSH Port of host (2) [22]: [+] SSH Private Key Path of host (192.168.1.20) [none]: ~/.ssh/id_rsa [+] SSH User of host (192.168.1.20) [ubuntu]: rancher [+] Is host (192.168.1.20) a Control Plane host (y/n)? [y]: y [+] Is host (192.168.1.20) a Worker host (y/n)? [n]: y [+] Is host (192.168.1.20) an etcd host (y/n)? [n]: y [+] Override Hostname of host (192.168.1.20) [none]: [+] Internal IP of host (192.168.1.20) [none]: [+] Docker socket path on host (192.168.1.20) [/var/run/docker.sock]: [+] SSH Address of host (3) [none]: 192.168.1.30 [+] SSH Port of host (3) [22]: [+] SSH Private Key Path of host (192.168.1.30) [none]: ~/.ssh/id_rsa [+] SSH User of host (192.168.1.30) [ubuntu]: rancher [+] Is host (192.168.1.30) a Control Plane host (y/n)? [y]: y [+] Is host (192.168.1.30) a Worker host (y/n)? [n]: y [+] Is host (192.168.1.30) an etcd host (y/n)? [n]: y [+] Override Hostname of host (192.168.1.30) [none]: [+] Internal IP of host (192.168.1.30) [none]: [+] Docker socket path on host (192.168.1.30) [/var/run/docker.sock]: [+] Network Plugin Type (flannel, calico, weave, canal) [canal]: flannel [+] Authentication Strategy [x509]: [+] Authorization Mode (rbac, none) [rbac]: [+] Kubernetes Docker image [rancher/hyperkube:v1.18.3-rancher2]: [+] Cluster domain [cluster.local]: [+] Service Cluster IP Range [10.43.0.0/16]: [+] Enable PodSecurityPolicy [n]: [+] Cluster Network CIDR [10.42.0.0/16]: [+] Cluster DNS Service IP [10.43.0.10]: [+] Add addon manifest URLs or YAML files [no]:

官方示例cluster.yaml

指定名稱創建配置文件

rke config --name cluster.yml

創建空的cluster.yml

如果需要空的cluster.yml模板,可以使用該–empty參數生成空模板。

rke config --empty --name cluster.yml

僅打印cluster.yml

您可以使用–print參數將生成的配置打印到stdout,而不是創建文件。

rke config --print

高可用性

RKE支持Kubernetes集群HA方式部署,您可以在cluster.yml文件中指定多個controlplane節點。RKE將在這些節點上部署master組件,并且kubelet配置為默認連接127.0.0.1:6443,這是nginx-proxy代理向所有主節點請求的服務的地址。

證書

從v0.2.0版本起可用

默認情況下,Kubernetes 集群需要用到證書,而 RKE 會自動為所有集群組件生成證書。您也可以使用自定義證書。部署集群后,您可以管理這些自動生成的證書,詳情請參考管理自動生成的證書。

RKE部署Kubernetes集群

創建cluster.yml完成后,可以使用簡單的命令部署集群。此命令假定該cluster.yml文件與運行該命令的目錄位于同一目錄中。

./rke_linux-amd64 up

在創建Kubernetes集群時會有日志語句。

[root@node01 ~]# ./rke_linux-amd64 up INFO[0000] Running RKE version: v1.1.3 INFO[0000] Initiating Kubernetes cluster INFO[0000] [certificates] GenerateServingCertificate is disabled, checking if there are unused kubelet certificates INFO[0000] [certificates] Generating admin certificates and kubeconfig INFO[0000] Successfully Deployed state file at [./cluster.rkestate] INFO[0000] Building Kubernetes cluster INFO[0000] [dialer] Setup tunnel for host [192.168.1.30] INFO[0000] [dialer] Setup tunnel for host [192.168.1.10] INFO[0000] [dialer] Setup tunnel for host [192.168.1.20] 。。。 INFO[0101] Finished building Kubernetes cluster successfully

當最后一行顯示Finished building Kubernetes cluster successfully表示集群已部署完成。作為Kubernetes創建過程的一部分,已創建并編寫了一個kubeconfig文件,該文件kube_config_cluster.yml用于與Kubernetes集群進行交互。 如果您使用了不同的cluster.yml文件名,則kube配置文件將以kube_config_<RKE_FILE_NAME>.yml命名

遇到FATA[0337] Failed to get job complete status for job rke-network-plugin-deploy-job in namespace kube-system錯誤,重新執行一遍./rke_linux-amd64 up即可

保存文件
警告

后期的故障排除和集群升級都需要以下文件

將以下文件的副本保存在安全位置:

cluster.yml:RKE 集群的配置文件。
kube_config_cluster.yml:該集群的Kubeconfig 文件包含了獲取該集群所有權限的認證憑據。
cluster.rkestate:Kubernetes 集群狀態文件,包含了獲取該集群所有權限的認證憑據,使用 RKE v0.2.0 時才會創建這個文件。
Kubernetes集群狀態文件
Kubernetes集群狀態由Kubernetes集群中的集群配置文件cluster.yml和組件證書組成,由RKE生成,但根據您的RKE版本,集群狀態的保存方式不同。

在v0.2.0之前,RKE將Kubernetes集群狀態保存為secret。更新狀態時,RKE會提取secret,更新/更改狀態并保存新secret。
從v0.2.0開始,RKE在集群配置文件cluster.yml的同一目錄中創建一個.rkestate文件。該.rkestate文件包含集群的當前狀態,包括RKE配置和證書。需要保留此文件以更新集群或通過RKE對集群執行任何操作。

下載kubectl

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl chmod +x ./kubectl mv ./kubectl /usr/local/bin/kubectl

使用RKE創建Kubernetes集群時,RKE會在本地目錄中創建一個包含認證信息的配置文件kube_config_rancher-cluster.yml,以使用kubectl或helm等工具連接到新集群。

您可以將此文件復制到$HOME/.kube/config或者如果您正在使用多個Kubernetes集群,請將KUBECONFIG環境變量設置為路徑kube_config_rancher-cluster.yml。

mkdir $HOME/.kube/ cp kube_config_cluster.yml $HOME/.kube/config

測試您的連接,看看是否可以返回節點列表。
kubectl get nodes

關于部署報錯

RKE部署報錯–docker版本不支持

  • 更換版本
    docker安裝指定版本

總結

以上是生活随笔為你收集整理的RKE部署Kubernetes集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。