環境准備
windows10 基於 vmware虛擬機安裝 Centos7 系統,關於系統的優化,猛擊這里
操作系統可以下載 阿里雲 OS 的鏡像,我沒測試過,這里依據我的模板進行操作.
這里主要講一下 yum 軟件安裝源的問題,由於默認軟件倉庫需要連接國外站點,導致更新軟件的時候,速度較慢,
推薦更換為:阿里雲官方鏡像站 生產環境一定要建造自己的yum 源,節省帶寬.
1. Centos7 系統 yum 安裝源的替換
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 備份系統自帶的安裝源 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 更換為阿里雲的安裝源 sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo #解決報錯問題 yum makecache fast # 生成緩存
2. Epel 鏡像
yum install wget -y # 安裝下載工具 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #下載安裝源 yum makecache # 生成緩存
3. Kubernetes 鏡像
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [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
4. Docker CE 鏡像
yum install -y yum-utils device-mapper-persistent-data lvm2 # 安裝工具和依賴 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 配置 yum 安裝源 yum makecache fast # 快速生成緩存
安裝單機 K8S
1. 安裝 kubectl , kubectl 是操作 k8s 集群的命令行工具
#由於我們安裝 kubernetes 安裝源,所以直接安裝就可以 yum install kubectl -y
2. 下載 minikube 安裝工具,這是一個快速在本地環境安裝 k8s 的工具
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.12.0/minikube-linux-amd64 chmod +x minikube && sudo mv minikube /usr/local/bin/ # 賦予執行權限並加入環境變量
minikube 在 Centos7系統上支持很多驅動, 這些驅動可以調用虛擬機程序創建 k8s 集群.
- kvm2 在 kvm 虛擬機中創建k8s , 需要打開cpu 的嵌套虛擬化功能
- virtualbox 在 virtualbox 虛擬機中創建 k8s , 需要打開cpu 的嵌套虛擬化功能
- docker 在 docker 容器中創建 k8s.
- none 使用本地docker 創建 k8s,類似於 kubeadm 單機版.
這里只介紹兩種驅動方式安裝 k8s
1. KVM2
安裝KVM虛擬機的軟件
yum install libvirt qemu-kvm -y # 安裝虛擬機軟件 systemctl enable libvirtd --now # 啟動虛擬機並加入開機啟動 virt-host-validate # 驗證虛擬機有沒有錯誤,
我的虛擬機展示一個 WARN, 一個 FAIL, 由於我有強迫症,修復了這兩個錯誤,所以並沒有測試不修復錯誤是否可以正常安裝 k8s.
WARN (IOMMU appears to be disabled in kernel. Add intel_iommu=on to kernel cmdline arguments),修復方法 可以參考這里
FAIL (Load the 'fuse' module to enable /proc/ overrides 修復方法:modprobe fuse, 如需實現開機加載, 可以參考這里, 抱歉,偷懶了,只是參考,還需自己改改.
minikube 安裝 k8s
重要的參數, 抱歉 copy 別人的,豐富自己的.
--driver=***從1.5.0版本開始,Minikube缺省使用本地最好的驅動來創建Kubernetes本地環境,測試過的版本docker,kvm--image-mirror-country cn將缺省利用 registry.cn-hangzhou.aliyuncs.com/google_containers 作為安裝Kubernetes的容器鏡像倉庫 (阿里雲版本可選)--iso-url=***利用阿里雲的鏡像地址下載相應的 .iso 文件 (阿里雲版本可選), 指的是虛擬機鏡像。--registry-mirror=***為了拉取Docker Hub鏡像,需要為 Docker daemon 配置鏡像加速,參考阿里雲鏡像服務--cpus=2: 為minikube虛擬機分配CPU核數--memory=2048mb: 為minikube虛擬機分配內存數--kubernetes-version=***: minikube 虛擬機將使用的 kubernetes 版本
Everything is ready ,it is time to start
minikube start --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.3.iso --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --registry-mirror=https://zgmke8qe.mirror.aliyuncs.com --driver=kvm2 --force
安裝過程被卡在了: 正在下載驅動 docker-machine-driver-kvm2.
原因: docker-machine-driver-kvm2, 這個驅動(也就是可執行文件)是需要通過國外站點下載,非常慢。
方案:
#登錄一台香港服務器,執行如下命令下載這個驅動文件 curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 #上傳這個驅動文件到本地服務器后,執行如下命令 chmod +x docker-machine-driver-kvm2 && sudo mv docker-machine-driver-kvm2 /usr/local/bin/
接下來就是見證奇跡的時刻,只需要大約五分鍾左右,我們的 k8s 單機版就順利安裝完成。(如果按照官方文檔教程,我測試了,在國內太難了)
驗證 k8s 集群

安裝 dashboard
#安裝 dashboard,此命令是在虛擬機的k8s中安裝 dashboard minikube dashboard #對外訪問dashboard,執行如下命令,作用是建立一條通往API服務器的隧道,可以方便查看API服務器上的資源 kubectl proxy --port=8001 --address='your server ip' --accept-hosts='^.*'
不用經過 token 驗證就就可以訪問 dashboard 了,方便我們學習和測試.
有興趣的同學,可以百度一下 k8s 的api, 就能理解一下URL了
訪問地址: http://your-ip:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
2 None
就我個人學習而言,我比較喜歡使用None的方式。
- 安裝簡單,依賴較少。
- 使用本地docker 創建容器,很容易就能了解服務的架構。
安裝並配置本地 docker
#安裝並啟動 docker
yum install docker-ce -y && systemctl enable docker --now
#配置鏡像加速器
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://zgmke8qe.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload && systemctl restart docker
minikube 安裝 k8s
#由於配置了鏡像加速器,所以不需要指定 --registry-mirror minikube start --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.3.iso --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --driver=none # 如果安裝中提示(X Sorry, Kubernetes 1.18.3 requires conntrack to be installed in root's path) 可執行以下命令安裝 yum install conntrack -y
備注:如果想刪除k8s,或者安裝的時候出錯,可以初始化系統環境, 只需要執行命令 minikube delete, 然后就可以重新安裝了.
