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-amd64K8S安裝
準備Kubernetes集群的節點
Kubernetes集群組件在Linux系統上以docker容器的形式運行,您可以使用熟悉的Linux發行版,只要它可以滿足Docker和Kubernetes的運行需要。
創建rke配置文件
有兩種簡單的方法可以創建cluster.yml:
- 使用我們的最小rke配置cluster.yml并根據將使用的節點更新它;
- 使用rke config向導式生成配置;
運行rke config配置向導
- 選項詳解
- 此次實驗設置【僅供參考】
官方示例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集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux ARM平台开发系列讲解(网络
- 下一篇: Python+谷歌浏览器--淘宝秒杀器