使用KubeKey安装K8S集群
KubeKey
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-9a5Ji2nE-1625797190511)(https://github.com/kubesphere/kubekey/workflows/CI/badge.svg?branch=master&event=push)]
English | 中文
從 v3.0.0 開始,KubeSphere 將基于 ansible 的安裝程序更改為使用 Go 語言開發的名為 KubeKey 的新安裝程序。使用 KubeKey,您可以輕松、高效、靈活地單獨或整體安裝 Kubernetes 和 KubeSphere。
有三種情況可以使用 KubeKey。
- 僅安裝 Kubernetes
- 用一個命令中安裝 Kubernetes 和 KubeSphere
- 首先安裝 Kubernetes,然后使用 ks-installer 在其上部署 KubeSphere
重要提示:Kubekey 將會幫您安裝 Kubernetes,若已有 Kubernetes 集群請參考 在 Kubernetes 之上安裝 KubeSphere。
優勢
- 基于 Ansible 的安裝程序具有大量軟件依賴性,例如 Python。KubeKey 是使用 Go 語言開發的,可以消除在各種環境中出現的問題,從而提高安裝成功率。
- KubeKey 使用 Kubeadm 在節點上盡可能多地并行安裝 K8s 集群,以降低安裝復雜性并提高效率。與較早的安裝程序相比,它將大大節省安裝時間。
- KubeKey 支持將集群從 all-in-one 擴展到多節點集群甚至 HA 集群。
- KubeKey 旨在將集群當作一個對象操作,即 CaaO。
支持的環境
Linux 發行版
- Ubuntu 16.04, 18.04
- Debian Buster, Stretch
- CentOS/RHEL 7
- SUSE Linux Enterprise Server 15
Kubernetes 版本
- v1.15: ? v1.15.12
- v1.16: ? v1.16.13
- v1.17: ? v1.17.9 (默認)
- v1.18: ? v1.18.6
查看更多支持的版本點擊這里
注意: KubeSphere目前暫不支持運行在k8s 1.19.x之上。
要求和建議
- 最低資源要求(僅對于最小安裝 KubeSphere):
- 2 核虛擬 CPU
- 4 GB 內存
- 20 GB 儲存空間
/var/lib/docker 主要用于存儲容器數據,在使用和操作過程中會逐漸增大。對于生產環境,建議 /var/lib/docker 單獨掛盤。
- 操作系統要求:
- SSH 可以訪問所有節點。
- 所有節點的時間同步。
- sudo/curl/openssl 應在所有節點使用。
- docker 可以自己安裝,也可以通過 KubeKey 安裝。
- Red Hat 在其 Linux 發行版本中包括了SELinux,建議關閉SELinux或者將SELinux的模式切換為Permissive[寬容]工作模式
- 建議您的操作系統環境足夠干凈 (不安裝任何其他軟件),否則可能會發生沖突。
- 如果在從 dockerhub.io 下載鏡像時遇到問題,建議準備一個容器鏡像倉庫 (加速器)。為 Docker 守護程序配置鏡像加速。
- 默認情況下,KubeKey 將安裝 OpenEBS 來為開發和測試環境配置 LocalPV,這對新用戶來說非常方便。對于生產,請使用 NFS/Ceph/GlusterFS 或商業化存儲作為持久化存儲,并在所有節點中安裝相關的客戶端 。
- 如果遇到拷貝時報權限問題Permission denied,建議優先考慮查看SELinux的原因。
- 依賴要求:
KubeKey 可以同時安裝 Kubernetes 和 KubeSphere。根據 KubeSphere 所安裝版本的不同,您所需要安裝的依賴可能也不同。請參考以下表格查看您是否需要提前在節點上安裝有關的依賴。
| socat | 必須安裝 | 可選,但推薦安裝 |
| conntrack | 必須安裝 | 可選,但推薦安裝 |
| ebtables | 可選,但推薦安裝 | 可選,但推薦安裝 |
| ipset | 可選,但推薦安裝 | 可選,但推薦安裝 |
- 網絡和 DNS 要求:
- 確保 /etc/resolv.conf 中的 DNS 地址可用。否則,可能會導致集群中出現某些 DNS 問題。
- 如果您的網絡配置使用防火墻或安全組,則必須確保基礎結構組件可以通過特定端口相互通信。建議您關閉防火墻或遵循鏈接配置:網絡訪問。
用法
獲取安裝程序可執行文件
-
下載KubeKey可執行文件 Releases page
下載解壓后可直接使用。
-
從源代碼生成二進制文件
git clone https://github.com/kubesphere/kubekey.git cd kubekey ./build.sh
注意:
- 在構建之前,需要先安裝 Docker。
- 如果無法訪問 https://proxy.golang.org/,比如在大陸,請執行 build.sh -p。
創建集群
快速開始
快速入門使用 all-in-one 安裝,這是熟悉 KubeSphere 的良好開始。
注意: 由于 Kubernetes 暫不支持大寫 NodeName, hostname 中包含大寫字母將導致后續安裝過程無法正常結束
命令
如果無法訪問 https://storage.googleapis.com, 請先執行 export KKZONE=cn.
./kk create cluster [--with-kubernetes version] [--with-kubesphere version]例子
-
使用默認版本創建一個純 Kubernetes 集群
./kk create cluster -
創建指定一個(支持的版本)的 Kubernetes 集群
./kk create cluster --with-kubernetes v1.17.9 -
創建一個部署了 KubeSphere 的 Kubernetes 集群 (例如 --with-kubesphere v3.0.0)
./kk create cluster --with-kubesphere [version]
高級用法
您可以使用高級安裝來控制自定義參數或創建多節點集群。具體來說,通過指定配置文件來創建集群。
如果無法訪問 https://storage.googleapis.com, 請先執行 export KKZONE=cn.
首先,創建一個示例配置文件
./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]例子:
-
使用默認配置創建一個示例配置文件。您也可以指定文件名稱或文件所在的文件夾。
./kk create config [-f ~/myfolder/config-sample.yaml] -
同時安裝 KubeSphere
./kk create config --with-kubesphere
根據您的環境修改配置文件 config-sample.yaml
注意: 由于 Kubernetes 暫不支持大寫 NodeName, worker 節點名中包含大寫字母將導致后續安裝過程無法正常結束
當指定安裝KubeSphere時,要求集群中有可用的持久化存儲。默認使用localVolume,如果需要使用其他持久化存儲,請參閱 addons 配置。
使用配置文件創建集群。
./kk create cluster -f ~/myfolder/config-sample.yaml啟用多集群管理
默認情況下,Kubekey 將僅安裝一個 Solo 模式的單集群,即未開啟 Kubernetes 多集群聯邦。如果您希望將 KubeSphere 作為一個支持多集群集中管理的中央面板,您需要在 config-example.yaml 中設置 ClusterRole。關于多集群的使用文檔,請參考 如何啟用多集群。
開啟可插拔功能組件
KubeSphere 從 2.1.0 版本開始對 Installer 的各功能組件進行了解耦,快速安裝將默認僅開啟最小化安裝(Minimal Installation),Installer 支持在安裝前或安裝后自定義可插拔的功能組件的安裝。使最小化安裝更快速輕量且資源占用更少,也方便不同用戶按需選擇安裝不同的功能組件。
KubeSphere 有多個可插拔功能組件,功能組件的介紹可參考 配置示例。您可以根據需求,選擇開啟安裝 KubeSphere 的可插拔功能組件。我們非常建議您開啟這些功能組件來體驗 KubeSphere 完整的功能以及端到端的解決方案。請在安裝前確保您的機器有足夠的 CPU 與內存資源。開啟可插拔功能組件可參考 開啟可選功能組件。
添加節點
將新節點的信息添加到集群配置文件,然后應用更改。
./kk add nodes -f config-sample.yaml刪除節點
通過以下命令刪除節點,nodename指需要刪除的節點名。
./kk delete node <nodeName> -f config-sample.yaml刪除集群
您可以通過以下命令刪除集群:
- 如果您以快速入門(all-in-one)開始:
- 如果從高級安裝開始(使用配置文件創建的集群):
集群升級
單節點集群
升級集群到指定版本。
./kk upgrade [--with-kubernetes version] [--with-kubesphere version]- --with-kubernetes 指定kubernetes目標版本。
- --with-kubesphere 指定kubesphere目標版本。
多節點集群
通過指定配置文件對集群進行升級。
./kk upgrade [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]- --with-kubernetes 指定kubernetes目標版本。
- --with-kubesphere 指定kubesphere目標版本。
- -f 指定集群安裝時創建的配置文件。
注意: 升級多節點集群需要指定配置文件. 如果集群非kubekey創建,或者創建集群時生成的配置文件丟失,需要重新生成配置文件,或使用以下方法生成。
Getting cluster info and generating kubekey’s configuration file (optional).
./kk create config [--from-cluster] [(-f | --file) path] [--kubeconfig path]- --from-cluster 根據已存在集群信息生成配置文件.
- -f 指定生成配置文件路徑.
- --kubeconfig 指定集群kubeconfig文件.
- 由于無法全面獲取集群配置,生成配置文件后,請根據集群實際信息補全配置文件。
啟用 kubectl 自動補全
KubeKey 不會啟用 kubectl 自動補全功能。請參閱下面的指南并將其打開:
先決條件:確保已安裝 bash-autocompletion 并可以正常工作。
# 安裝 bash-completion apt-get install bash-completion# 將 completion 腳本添加到你的 ~/.bashrc 文件 echo 'source <(kubectl completion bash)' >>~/.bashrc# 將 completion 腳本添加到 /etc/bash_completion.d 目錄 kubectl completion bash >/etc/bash_completion.d/kubectl更詳細的參考可以在這里找到。
相關文檔
- 配置示例
- 自定義插件安裝
- 網絡訪問
- 存儲客戶端
- 路線圖
- 查看或更新證書
- 開發指南
貢獻者 ?
歡迎任何形式的貢獻! 感謝這些優秀的貢獻者,是他們讓我們的項目快速成長。
pixiake 💻 📖 | Forest 💻 📖 | rayzhou2017 💻 📖 | shaowenchen 💻 📖 | Zhao Xiaojie 💻 📖 | Zack Zhang 💻 | Akhil Mohan 💻 |
pengfei 📖 | min zhang 💻 📖 | zgldh 💻 | xrjk 💻 | yonghongshi 💻 | Honglei 📖 | liucy1983 💻 |
Lien 📖 | Tony Wang 📖 | Hongliang Wang 💻 | dawn 💻 | Duan Jiong 💻 | calvinyv 📖 | Benjamin Huo 📖 |
Sherlock113 📖 | fu_changjie 📖 | yuswift 💻 | ruiyaoOps 📖 | LXM 📖 | sbhnet 💻 | misteruly 💻 |
總結
以上是生活随笔為你收集整理的使用KubeKey安装K8S集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【收藏】在 Linux 上以 All-i
- 下一篇: kubesphere添加新节点