Kubernetes教程之Ubuntu下kubeadm进行单机部署

修改源

先到/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

(5)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年9月13日 22:58
下一篇 2020年9月14日 23:35

相关推荐

发表评论

您的电子邮箱地址不会被公开。

本人在 B 站正在录制一套 Client-Go 的教程视频,免费观看。B 站搜索 ”兰三石“ 即可。欢迎并感谢一键三连。