修改源
先到/etc/apt/sources.list.d/文件夹中手动创建文件kubernetes.list,在该文件中添加(使用中科大的源,否则要翻墙,或者速度太慢):
http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
or
deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial 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 kubeadm
关闭swap,如果不关闭kubernetes运行会出现错误, 及时安装成功了,node重启后也会出现kubernetes server运行错误。
sudo swapoff -a
拉取k8s镜像
先运行“kubeadm config images list”命令,获取要pull的镜像列表:
$ kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.19.1
k8s.gcr.io/kube-controller-manager:v1.19.1
k8s.gcr.io/kube-scheduler:v1.19.1
k8s.gcr.io/kube-proxy:v1.19.1
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns:1.7.0
使用任意文本编辑器,写脚本批次pull,在k8s_cript文本中输入:
#! /bin/bash
images=(
kube-apiserver:v1.19.1
kube-controller-manager:v1.19.1
kube-scheduler:v1.19.1
kube-proxy:v1.19.1
pause:3.2
etcd:3.4.13-0
coredns:1.7.0
)
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
$ kubectl get node
NAME STATUS ROLES AGE VERSION
172-16-244-154.aibee.cn Ready master 37m v1.19.1
本文为转载文章,贵在分享,版权归原作者及原出处所有,如涉及版权等问题,请及时与我联系。
原文出处:那记忆微凉
原文链接:https://blog.csdn.net/BigData_Mining/article/details/98956971