VMware centOS7 下通過minikube部署Kubernetes

1、環境準備:

VMware CentOS-7-x86_64
CPU:2*2core
內存:8G
宿主機和虛擬機需網絡互通,虛擬機外網訪問正常
Centos發行版版本查看:cat /etc/centos-release
本實驗使用ROOT用戶操作

2、禁用swap分區

Kubernetes 1.8開始要求關閉系統的Swap,可暫時關閉或永久禁用,
使用 # free -m 確認swap是否爲開啓狀態

  • # swapoff -a # 暫時關閉
  • # vim /etc/fstab # 註釋掉swap那一行(SWAP 自動掛載),可永久禁用swap分區

3、安裝docker

docker安裝參考:https://www.cnblogs.com/biaopei/p/11937292.html

  • 需要注意的是,Kubernetes的安裝對docker版本有嚴格要求,Kubernetes 1.15當前支持的docker版本列表是1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09
  • Kubernetes 1.16最大支持版本也是18.09,本實驗使用的kubernates爲kubernates1.16,是當前(20191010)最新穩定版本。
    本實驗安裝的docker版本爲docker-ce-18.06.3
    # yum install -y docker-ce-18.06.3.ce-3.el7

4、安裝kubectl

  • 安裝之前添加阿里雲YUM軟件源,執行以下命令行(源測試可用:2019-10-10)
# cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
  • 安裝kubectl
    # yum install -y kubectl
    注:此處也可以執行 yum install -y kubelet kubeadm kubectl 連同kubelet、kubeadm一起下載,後面 minikube start 的時候可以節約時間

5、安裝minikube

將minikube下載並安裝到/usr/local/bin(本實驗安裝版本爲minikube-1.4.0):

官方版:

# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && sudo install minikube-linux-amd64 /usr/local/bin/minikube

阿里版:

 # curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.4.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

因爲網絡原因,建議使用minikube阿里修改版本安裝,詳見 https://yq.aliyun.com/articles/221687,本實驗最終使用阿里修改版安裝成功。

6、啓動minikube

minikube有2種啓動驅動:虛擬機程序啓動和裸機啓動(或叫none驅動程序啓動)

  • 虛擬機程序啓動,minikube依賴虛擬機運行。如果是物理機安裝minikube,官方推薦使用libvirt v1.3.1+、qemu-kvm v2.0+或VirtualBox 5.2+ ,當然也可以裸機啓動。
  • 如果部署的minikube已經在VM中運行,虛擬機管理程序不允許嵌套虛擬化,則可以使用裸機啓動方式,跳過創建其他VM層的操作,直接運行以下命令。我們使用此方式實驗。裸機啓動只能單節點部署k8s。

裸機啓動方式要求minikube以root身份運行,一定要帶上--registry-mirror參數,指明從docker中國區的鏡像下載數據。
# minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com

也可設置none爲默認驅動程序(裸機啓動),只需要執行minikube start即可正常啓動minikube,設置命令:
# minikube config set vm-driver none
然後執行:
# minikube start --registry-mirror=https://registry.docker-cn.com

minikube start 命令執行後會依次自動執行以下操作
1)驗證minikube運行環境
2)在docker上預加載Kubernates,驗證docker
3)下載kubelet、kubeadm(當前實驗版本爲v1.16)
4)拉取Kubernates鏡像
5)啓動Kubernates

看到以下結果,說明啓動成功!
在這裏插入圖片描述

7、失敗

如果安裝的是minikube阿里版,執行minikube start 命令後失敗請嘗試重新start,執行命令參考如下
# minikube delete
# rm -f ~/.kube/config
# rm -rf ~/.minikube
# minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com

如果安裝的是minikube官方版,網絡原因,minikube start 命令執行後到拉取Kubernates鏡像這一步的時候易出錯,因爲拉取鏡像的命令使用的是# kubeadm config images pull --config /var/tmp/minikube/kubeadm.yaml
(見錯誤提示)
在這裏插入圖片描述
單獨執行此命令會報錯:failed to pull image "k8s.gcr.io/kube-apiserver:v1.16.0": output: Error response from daemon: Get https://k8s.gcr.io/v2/:net/http:request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
在這裏插入圖片描述
解決方案
方案1、參考:https://blog.csdn.net/jinguangliu/article/details/82792617

方案2、minikube 改用阿里修改版本,需要先卸載舊版

  • 卸載minikube:
    # minikube delete
    # rm -f ~/.kube/config
    # yum remove minikube*
  • 下載阿里版:
# curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.4.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
  • 裸機啓動
    # minikube start --vm-driver=none --registry-mirror=https://registry.docker-cn.com

8、啓動成功後常用命令

# kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080 # 啓動服務器
# kubectl get po -A # 查看pod狀態
# kubectl expose deployment hello-minikube --type=NodePort # 將服務公開爲NodePort
# minikube config set memory 4096 # minikube默認情況下僅分配2GB的RAM,需擴內存可使用此命令
# minikube dashboard # 訪問minikube集羣中運行的Kubernetes儀表板
# minikube service hello-minikube # 使用minikube可在瀏覽器中輕鬆打開此開放節點
# minikube start -p cluster2 # 啓動第二個本地集羣(注意:裸機啓動(本次實驗環境)不適用):
# minikube stop # 停止本地集羣
# minikube delete # 刪除本地集羣

參考:
https://github.com/kubernetes/minikube
https://minikube.sigs.k8s.io/docs/start
https://www.kubernetes.org.cn/5551.html
https://www.cnblogs.com/Tempted/p/10671292.html
https://yq.aliyun.com/articles/221687

附docker加速鏡像獲取地址:
阿里雲:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors?spm=a2c4e.11153940.0.0.7dd54cecs0RthS
中科大:https://docker.mirrors.ustc.edu.cn/

minikube和kubernates版本對應:
minikube-1.2 使用 kubernates_v1.10.0
minikube-1.4 使用 kubernates_v1.16.0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章