概述:
單機低配置主機也可以玩轉kubernetes集群。該文章是將介紹使用Minikube安裝Kubernetes集群(一般用於本地/開發環境)。
這篇文章是根據kubernetes官網和其他資料總結而來,如環境相似(或更高),一般均可以安裝成功。
配置環境:
硬件:CPU 至少2個核心,至少2.5G(2560M)內存
軟件:virtualbox虛擬機,操作系統 CentOS Linux release 7.7.1908 (Core)
注意:
CPU 必須2個或2個以上,否則安裝失敗。內存必須2.5G或大於2.5G,否則磁盤IO總是100%。
說明:
如無特殊說明,本文中的所有命令全部使用root用戶執行。
一、准備工作
1.1 關閉防火牆、關閉SELinux、禁用swap、設置kubernetes源
請參考 Kubernetes(K8s) 安裝(使用kubeadm安裝Kubernetes集群)
1.2 下載kubectl文件和Minikube文件
kuberctl文件:下載
Minikube文件:下載 (下載之后,需要重命名為 minikube。官網)
(說明:這里需要將下載的文件放入到虛擬機。當然也可以使用curl命令直接下載)
結果如下圖:
二、安裝docker
請參考 史上最詳細的Docker安裝手冊
三、安裝kubectl和minikube
3.1 將kubectl和minikube文件改為可執行文件
執行以下命令:
chmod +x kubectl && chmod +x minikube
結果如下圖(kubectl和minikube文件變為綠色):
3.2 將kubectl和minikube復制到 /usr/local/bin/ 目錄
# cp kubectl /usr/local/bin/ && cp minikube /usr/local/bin/
# ls /usr/local/bin/
結果如下圖:
3.3 檢驗是否安裝成功
kubectl --help
安裝成功,顯示結果如下圖:
minikube version
安裝成功,顯示結果如下圖:
四、啟動minikube
4.1 安裝conntrack
yum install -y conntrack
4.2 下載kubernetes鏡像
由於minikube啟動過程中會從k8s.gcr.io下載鏡像,但是國內無法下載,所以從阿里雲下載(並修改tag和k8s.gcr.io一致)。
--------------------------------- 2021-06-29 修改 Start -------------------------------------------
說明:
這里使用的kubernetes 的版本是1.18.0,根據需要改為其他版本即可。
如果使用的是最新版,可以直接跳過執行下一步驟(即 minikube start 命令)。如果下一步驟也報錯(即 minikube start 命令),可提取相應的版本號(使用 minikube logs命令查看 )來替換下面的版本號。
---------------------------------- 2021-06-29 End -------------------------------------------
## 1. 使用docker執行以下命令,下載鏡像(從阿里雲下載): docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 && docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 && docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 && docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0 && docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 && docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3 && docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 && docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1 ## 2. 更改鏡像標簽(必須修改): docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.0 k8s.gcr.io/kube-apiserver:v1.18.0 && docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.0 k8s.gcr.io/kube-controller-manager:v1.18.0 && docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.0 k8s.gcr.io/kube-scheduler:v1.18.0 && docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.0 k8s.gcr.io/kube-proxy:v1.18.0 && docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2 && docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3 k8s.gcr.io/etcd:3.4.3-0 && docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7 && docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner:v1.8.1 gcr.io/k8s-minikube/storage-provisioner:v1.8.1
說明
如使用的最新版本的docker,可以直接跳過該步驟
4.3 啟動minikube
------------------- 2021-10-27 -----------------------
## 安裝 kubernetes 1.22.0 版本期間,使用最新版本的docker(20.10.10),發現需要安裝插件 socat、tc、libseccomp-devel (會提示 kubelet 沒有運行,導致安裝失敗)
## 如缺少插件可能無法運行容器,報錯:runc: symbol lookup error: runc: undefined symbol: seccomp_api_get
yum install -y socat tc libseccomp-devel
## 使用下面的命令進行啟動minikube (image-repository參數:指定鏡像倉庫 2021-02-02更新,更多參數:minikube start --help)
minikube start --driver=none --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'
執行成功,結果如下圖:
執行以下命令:
## 如之前已經安裝過,請先刪除對應的文件
mv /root/.kube /root/.minikube $HOME # 如果使用的root用戶,這一步可以省略 chown -R $USER $HOME/.kube $HOME/.minikube
注意:
## 1:如安裝過程中遇到問題,可以執行以下命令來查看日志
minikube logs
## 2:執行以下命令刪除已經安裝的minikube(然后重新執行start命令)
minikube delete --all
## 3:如安裝失敗,可多次進行嘗試(start 和 delete)
------------------- 2021-07-22 -----------------------
## 4: 如安裝的過程中提示缺少某一個鏡像,可以在使用docker search命令在docker hub上查找(或者在docker hub官網上搜索),下面以coredns為例
## 本機執行以下命令
docker search coredns
## 通常我也會去docker hub上找一下,看看哪個是官方提供的
------------------- 2021-10-27 -----------------------
## 5. 如果minikube沒有開機啟動,則可以直接執行以下命令,啟動之前安裝的kubernetes集群
minikube start
五、校驗是否安裝成功
查看minikube安裝是否成功,執行以下命令:
minikube status
安裝成功,顯示如下圖:
kubectl cluster-info
說明:
可以根據自己的需要是否安裝dashboard
# 安裝dashboard
minikube dashboard
參考資料:
https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux
https://kubernetes.io/zh/docs/tasks/tools/install-minikube/
https://yq.aliyun.com/articles/691500
https://minikube.sigs.k8s.io/docs/drivers/docker/
--------------------------------------------------------------------------------------------------------
PS:如有問題,請在下方留言,我看到后會及時回復。
--------------------------------------------------------------------------------------------------------