k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA
作者:楊紫熹
原文鏈接:
https://fs.tn/post/PmaL-uIiQ/
RKE全稱為Rancher Kubernetes Engine,是一款經過CNCF認證的開源Kubernetes發行版,可以在Docker容器內部運行。它解決了Kubernetes社區中最常見的問題——安裝十分復雜。借助RKE,可以簡化Kubernetes的安裝和操作,并且用戶可以在任何操作系統和平臺上運行它。
安裝RKE
首先需要下載RKE這個工具,下載地址為:
https://github.com/rancher/rke/releases
根據自己的平臺,下載對應的可執行文件,下面我以ubuntu來做演示說明。
下載rke_linux_amd64
chmod +x rke_linux_amd64賦予可執行權限
改名為rke,mv rke_linux_amd64 rke
放入bin目錄(可選)
以上三步就安裝好了RKE,mac可以直接用brew安裝,命令為brew install rke
部署Kubernetes集群
生成集群配置文件
安裝好了RKE之后,首先生成RKE的配置文件。
使用自帶命令rke config,生成cluster.yml配置文件
生成之后默認會有一個示例的配置文件。文件中的controlplane 就是k8s中所說的master。下面來看下這個配置文件(已經經過修改的版本)。
我們以3主3etcd,3work這種經典k8s集群模式來講解下配置文件改如何寫。請仔細閱讀,對于部署k8s有以下幾點需要注意的。
賬戶不能用root賬戶
所有節點的時間必須同步
使用的非root賬戶要能正常使用docker
配置建議再2C4G以上,推薦是4C8G比較合適,磁盤40G
大部分的配置都注釋說明了,基本上需要用到的配置就這些了,更詳細的配置需要查閱官方文檔。文檔鏈接:
https://docs.rancher.cn/rke/example-yamls.html
開始部署
配置完畢之后,就是開始部署了,rke的啟動非常簡單,在配置文件目錄使用./rke up就可以了。
啟動完畢之后,等待大約10分鐘左右,會提示Finished building Kubernetes cluster successfully
部署的過程中,日志可能會顯示WARN的提示,這個是沒有關系的。只要不出現ERR即可。
可能會出現的錯誤:
etcd健康檢查不通過,出現證書錯誤的情況,這個報錯一般是因為時間不同步導致的。
無法訪問到node,這個報錯一般是因為地址配置出錯
Failed to set up SSH tunneling for host,這個報錯一般是使用了root用戶或者docker sock配置錯誤
Failed to dial ssh using address,ssh-key配置錯誤
部署成功之后,有三個文件需要特別保存。
cluster.yml:RKE集群配置文件。
kube_config_cluster.yml:集群的Kubeconfig文件,此文件包含完全訪問集群的憑據。
cluster.rkestate:Kubernetes集群狀態文件,此文件包含訪問集群的重要憑據。
有了以上三個文件,就可以對集群做新增、刪除節點、升級集群版本的操作,所以必須要保存好。
部署Helm
創建helm權限
運行下面命令創建好helm的權限
kubectl --kubeconfig=kube_config_cluster.yml -n kube-system create serviceaccount tillerkubectl --kubeconfig=kube_config_cluster.yml create clusterrolebinding tiller \--clusterrole cluster-admin --serviceaccount=kube-system:tiller初始化helm
這里首先在自己的機子上裝好helm,怎么裝這里不再多說了,可以自行百度或者Google。
安裝好了之后,可以直接運行helm init --kubeconfig=kube_config_cluster.yml來初始化。但是這里有有一個問題,可能會有鏡像拉不下來的情況。所以推薦使用下面的命令來初始化。
里面的鏡像是Rancher給的鏡像地址。當然也可以換成自己的。
運行完命令之后,可以通過kubectl看一看tiller是否正常啟動了。
更新helm
更新就直接使用kubectl的命令,升級鏡像版本即可。命令如下(版本號可能和最新的不一樣,請不要直接使用)
kubectl --kubeconfig=kube_config_cluster.yml --namespace=kube-system \ set image deployments/tiller-deploy \ tiller=registry.cn-shanghai.aliyuncs.com/rancher/tiller:v3.0.1添加Rancher的charts
添加Rancher的stable版本charts
helm repo add rancher-stable \https://releases.rancher.com/server-charts/stable --kubeconfig=kube_config_cluster.yml安裝Rancher
我這里使用的是外部負載均衡的模式,就是在k8s之外,還有一個nginx作為入口負載均衡,同時ssl也截至到這個nginx。所以下面的配置中,加上了--set tls=external。如果你是直接使用集群作為入口的,則不需要這個參數,需要自己配置ssl證書。具體參考官網。
helm --kubeconfig=kube_config_cluster.yml install rancher-stable/rancher \ --name rancher --namespace cattle-system \ --set hostname=rancher.asoco.com.cn \ --set tls=external到此實際上整個集群和Rancher都已經部署好了。接下來需要配置外部的nginx負載均衡器。
外部負載均衡器nginx的配置
nginx的配置我直接貼出來:
# zip壓縮相關的配置gzip on;gzip_disable "msie6";gzip_disable "MSIE [1-6]\.(?!.*SV1)";gzip_vary on;gzip_static on;gzip_proxied any;gzip_min_length 0;gzip_comp_level 8;gzip_buffers 16 8k;gzip_http_version 1.1;gzip_types text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml application/font-woff text/javascript application/javascript application/x-javascript text/x-json application/json application/x-web-app-manifest+json text/css text/plain text/x-component font/opentype application/x-font-ttf application/vnd.ms-fontobject font/woff2 image/x-icon image/png image/jpeg;# 這里配置為配置了ingress的work節點 upstream rancher { server 192.168.1.5:80; server 192.168.1.6:80; server 192.168.1.7:80;}map $http_upgrade $connection_upgrade { default Upgrade; '' close;}server { listen 443 ssl ; #配置域名 server_name rancher..com.cn; #配置證書 ssl_certificate /etc/nginx/rancher.com.cn.sslkey/fullchain.pem; ssl_certificate_key /etc/nginx/rancher.com.cn.sslkey/privkey.pem; location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://rancher; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # This allows the ability for the execute shell window to remain open for up to 15 minutes. ## Without this parameter, the default is 1 minute and will automatically close. proxy_read_timeout 900s; proxy_buffering off; }}# 配置301重定向server { listen 80; server_name rancher.com.cn; return 301 https://$server_name$request_uri;}將以上配置,新增一個rancher.conf配置文件,然后放到/etc/nginx/conf.d/文件夾中,然后nginx重載配置即可。
總? 結
在上面步驟都做完之后,訪問域名即可打開Rancher,并且Rancher已經默認接管集群了,開始享有Rancher的便捷吧。
推薦閱讀
超長干貨丨Kubernetes網絡快速入門完全指南
獨家!K8S安全成頭等大事,2019年K8S漏洞盤點與解讀
服務網格數據平面的關鍵:層層剖析Envoy配置
Rancher年終招聘啦!北京、上海、深圳、沈陽四地火熱招聘中,快來加入我們!
解決方案架構師、測試、Golang工程師等眾多崗位等你來投!還有更多崗位詳情,戳文看咯!
簡歷投遞地址:chinajobs@rancher.com
About Rancher Labs
Rancher Labs由CloudStack之父梁勝創建。旗艦產品Rancher是一個開源的企業級Kubernetes管理平臺,實現了Kubernetes集群在混合云+本地數據中心的集中部署與管理。Rancher一向因操作體驗的直觀、極簡備受用戶青睞,被Forrester評為2018年全球容器管理平臺領導廠商,被Gartner評為2017年全球最酷的云基礎設施供應商。
目前Rancher在全球擁有超過一億的下載量,并擁有包括中國人壽、華為、中國平安、興業銀行、民生銀行、平安證券、海航科技、廈門航空、上汽集團、海爾、米其林、豐田、本田、中船重工、中聯重科、迪斯尼、IBM、Cisco、Nvidia、輝瑞制藥、西門子、CCTV、中國聯通等全球著名企業在內的共27000家企業客戶。
點擊閱讀原文,投遞簡歷
↓↓↓ 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的k8s ubuntu cni_手把手教你使用RKE快速部署K8S集群并部署Rancher HA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php常用功能代码,10段PHP常用功能
- 下一篇: 在前端中如何在表格中最后一行加入输入框_