添加源,添加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

或者用阿里的源:

deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/  kubernetes-xeni
al main

然后更新:

sudo apt-get update

若报这个错误:

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

是由于加了kubernetes源, 使用 apt-get update 命令会出现如下错误,原因是缺少相应的key,
运行以下命令,添加错误中对应的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
 
k8s.gcr.io/kube-apiserver:v1.15.2
k8s.gcr.io/kube-controller-manager:v1.15.2
k8s.gcr.io/kube-scheduler:v1.15.2
k8s.gcr.io/kube-proxy:v1.15.2
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1

使用任意文本编辑器,写脚本批次pull,在k8s_cript文本中输入:

#! /bin/bash
images=(
    kube-apiserver:v1.15.2
    kube-controller-manager:v1.15.2
    kube-scheduler:v1.15.2
    kube-proxy:v1.15.2
    pause:3.1
    etcd:3.3.10
    coredns:1.3.1
)
 
for imageName in ${images[@]} ; do
    sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    sudo 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

或者:

sudo apt-get remove docker docker-engine docker-ce docker.io

如果使用docker -v 还可以显示docker版本,则使用下面命令:

sudo apt-get remove --purge docker.ce

安装指定版本的Docker:

sudo apt-get install docker-ce=< version>  docker-ce-cli=< version>

—果出现“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

列出docker版本:

sudo apt-cache madison docker-ce

选择要安装的特定版本,第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们:

$ sudo apt-get install docker-ce=<VERSION>
配置授权信息

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
增加容忍
kubectl taint nodes --all node-role.kubernetes.io/master-

允许Master部署Pod。

安装Pod Network

接下来安装flannel network add-on:

mkdir -p ~/k8s/
cd ~/k8s
curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f  kube-flannel.yml

注意:
这里kube-flannel.yml这个文件里的flannel的镜像是0.11.0,quay.io/coreos/flannel:v0.11.0-amd64
可以到阿里云镜像源下载。
运行一些命令
查询nodes: kubectl get nodes

root@sdas-05:~/k8s# kubectl get nodes
NAME      STATUS   ROLES    AGE   VERSION
sdas-05   Ready    master   57m   v1.15.2
Logo

开源、云原生的融合云平台

更多推荐