1. 程式人生 > >Ubuntu18.04 國內環境使用kubeadm安裝kubernetes+docker(單機版)

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