当前位置:   article > 正文

Ubuntu18.04 安装k8s

Ubuntu18.04 安装k8s

一、前期准备

准备两台 Ubuntu18.04 至少双核双线程

主机名IP说明
master192.168.20.5k8s管理节点
node192.168.20.6k8s工作节点

二、修改主机名、更新host

编辑 /etc/hostname 修改主机名。

/etc/cloud/cloud.cfg 中的 preserve_hostname: false 改为 preserve_hostname: true,否则重启后主机名仍会恢复。

master/etc/hosts 中进行如下修改:

127.0.1.1 master
192.168.20.5 master
192.168.20.6 node
  • 1
  • 2
  • 3

node/etc/hosts 中进行如下修改:

127.0.1.1 node
192.168.20.5 master
192.168.20.6 node
  • 1
  • 2
  • 3
安装 docker

参考:https://blog.csdn.net/k_young1997/article/details/104325159

修改 docker 驱动

/etc/docker/daemon.json 中添加:

"exec-opts": ["native.cgroupdriver=systemd"]
  • 1

重启 docker:

systemctl restart docker
  • 1

查看 docker 驱动:

root@master:/# docker info | grep "Cgroup Driver"
 Cgroup Driver: systemd
  • 1
  • 2

kubernetes 官方建议 docker 驱动采用 systemd,当然可以不修改,只是kubeadm init时会有

warning([WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver. The recommended driver is “systemd”. Please follow the guide at https://kubernetes.io/docs/setup/cri/)
  • 1

可以忽略,生产环境建议修改,因为更稳定。

备注:

以上操作需在两台主机上执行

三、关闭防火墙、swap

1.防火墙

sudo ufw disable
  • 1

2.关闭 swap

Kubernetes 1.8开始要求必须禁用Swap,如果不关闭,默认配置下kubelet将无法启动。

/etc/fstab 中的这一行注释掉

/swap.img      none    swap    sw      0       0
  • 1

执行

sudo swapoff -a
  • 1

备注:

以上两个步骤需要在两台主机执行

四、安装 kubelet、kubeadm、kubectl

1.添加阿里源

由于国外网站访问较慢容易卡死,所以需要添加源。

/etc/apt/sources.list 中添加:

deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
  • 1

添加源的 key :

curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
  • 1

更新源:

sudo apt-get update
  • 1

备注:

1.以上操作需在两台主机上执行

2.若不添加源的 key ,在更新源时会有如下报错:

Err:3 https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease
The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 6A030B21BA07F4FB

2.开始安装

两台 服务器安装 kubelet、kubeadm、kubectl

sudo apt-get install -y kubelet kubeadm kubectl
  • 1

查看版本号:

root@master:/# kubelet --version
Kubernetes v1.19.3
  • 1
  • 2

启动 kubelet

systemctl start kubelet
  • 1

五、部署主(管理)节点

以下操作仅在 master 主机上执行

1.查看 kubernetes 所需镜像列表

获取最新版所需镜像列表

kubeadm config images list
  • 1

结果:

随着不断更新,获取到的版本信息会有不同

k8s.gcr.io/kube-apiserver:v1.19.3
k8s.gcr.io/kube-controller-manager:v1.19.3
k8s.gcr.io/kube-scheduler:v1.19.3
k8s.gcr.io/kube-proxy:v1.19.3
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.13-0
k8s.gcr.io/coredns:1.7.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.执行 init

kubeadm init --kubernetes-version=v1.19.3 --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
  • 1

当出现如下内容时**(要保存下来,后边有用)**,执行成功:

kubeadm join 192.168.20.5:6443 --token gmhz6l.q4zvle4gqceoy4tp \
    --discovery-token-ca-cert-hash sha256:bad772999ca7a8de85eb64a0fe570ae3cef92781e2e2bf9f9f6cbc793f1087f1
  • 1
  • 2

备注:

kubeadm init 命令默认会去 k8s.gcr.io 仓库拉取镜像,由于是国外网站基本不能拉下镜像。可以通过 --image-repository 参数指定为阿里镜像即可。

3.失败重试

若执行失败,可执行如下命令,清除执行 init 产生的垃圾

kubeadm reset
rm -rf /etc/kubernetes
  • 1
  • 2

4.非root用户操作 kubectl

部署成功后,如果我们想使用非root用户操作 kubectl,可以使用以下命令,这也是 kubeadm init 输出的一部分

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 1
  • 2
  • 3

六、node节点执行join

1.在node节点执行命令

kubeadm join 192.168.20.5:6443 --token blolnk.f5g0d2nf1uqmak48 \
    --discovery-token-ca-cert-hash sha256:a7e4bee8d61d2c70f394512ea3e170a529470700ccab065125a50e58d15db1d9
  • 1
  • 2

备注:

该命令在执行完 init 命令后会打印出,也即 5.2 的成功标志。

2.查看节点状态

master 节点查看节点状态:

root@master:~# kubectl get nodes
NAME     STATUS     ROLES    AGE     VERSION
master   NotReady   master   50m     v1.19.3
node     NotReady   <none>   3m52s   v1.19.3
  • 1
  • 2
  • 3
  • 4

可以看到所有节点都处于 未就绪 状态。

七、搭建 flannel 网络集群

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  • 1

此时再次查看节点状态,全部已就绪:

root@master:~# kubectl get nodes
NAME     STATUS   ROLES    AGE   VERSION
master   Ready    master   79m   v1.19.3
node     Ready    <none>   33s   v1.19.3
  • 1
  • 2
  • 3
  • 4

备注:

如果出现以下报错:

Unable to connect to the server: read tcp 192.168.20.5:37246->151.101.228.133:443: read: connection reset by peer

可以安装 apt-get install ca-certificatesapt-get install ssl-cert 解决。

参考资料:

https://www.cnblogs.com/xiaoxuebiye/p/11256292.html

https://www.cnblogs.com/rainingnight/p/using-kubeadm-to-create-a-cluster-1-13.html

https://www.cnblogs.com/rainingnight/p/using-kubeadm-to-create-a-cluster.html

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号