Ubuntu18.04 國內環境使用kubeadm安裝kubernetes+docker(單機版)
新增源,新增key,安裝docker.io, kubelet, kubernetes-cni=0.6.0-00,和 kubeadm
先到/etc/apt/sources.list.d/資料夾中手動建立檔案kubernetes.list,在該檔案中新增(使用中科大的源,否則要翻牆,或者速度太慢):
http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
然後更新:
sudo apt-get update
由於加了kubernetes源, 使用 apt-get update 命令會出現如下錯誤,原因是缺少相應的key,
Err:4 http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6A030B21BA07F4FB
執行以下命令,新增錯誤中對應的key(錯誤中 NO_PUBKEY後面的key的後8位):
gpg --keyserver keyserver.ubuntu.com --recv-keys BA07F4FB
接著執行:
gpg --export --armor E084DAB9 | sudo apt-key add -
返回OK,說明成功. 之後進行安裝:
sudo apt-get install -y docker.io kubelet kubernetes-cni=0.6.0-00 kubeadm
關閉swap:
如果不關閉kubernetes執行會出現錯誤, 及時安裝成功了,node重啟後也會出現kubernetes server執行錯誤。
sudo swapoff -a #暫時關閉
使用docker pull k8s的相關映象:
先執行以下命令,獲取要pull的映象列表:
kubeadm config images list
使用任意文字編輯器,寫指令碼批次pull,在文字中輸入:
#! /bin/bash
images=(
kube-apiserver:v1.12.2
kube-controller-manager:v1.12.2
kube-scheduler:v1.12.2
kube-proxy:v1.12.2
pause:3.1
etcd:3.2.24
coredns:1.2.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
done
其中docker tag用於標記本地映象,將其歸入某一倉庫.
儲存指令碼k8s_cript後執行:
sudo chmod +x k8s_cript
讓其變得可執行,然後在當前資料夾執行:
./k8s_cript 即可.
初始化
先進入root 模式: sudo -i
初始化:
kubeadm init
——如果發現docker版本不合適,可能是因為docker版本太新(因為預設安裝的是最新版本的docker,就要卸了docker重灌版本支援的docker,注:Ubuntu裡docker稱作docker.io:
sudo apt-get autoremove docker.io
——如果出現“Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?”
執行以下命令:
systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service
配置授權資訊
init成功後,即master node初始化成功,成功後會提示一些操作.(如果失敗,根據問題再做改進):
To start using your cluster, you need to run the following as a regular user:
即配置授權資訊,主要是為了儲存相關的配置資訊在使用者目錄下,這樣不用每次都輸入相關的認證資訊。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
執行一些命令
查詢nodes: kubectl get nodes
參考:https://zhuanlan.zhihu.com/p/46341911