Ubuntu 部署 k8s集群

系统要求:

  2台 Ubuntu 16.04+

  最低 2核2G

1、安装docker

  在线安装离线安装

2、阿里源 安装 kubelet kubeadm kubectl

  sudo apt-get update

  sudo apt-get install -y apt-transport-https

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

  // 因为是复制的人家的命令所以用 root 用户写入方便,也可以 sudo vim 编辑

  // cat 到 EOF 是写入文件,复制的时候单行复制,不要有空行。

  sudo su

  cat <<EOF >/etc/apt/sources.list.d/kubernetes.list

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

EOF

  // 退出root 用户

   exit

   sudo apt-get update

   sudo apt-get install -y kubelet kubeadm kubectl

  kubectl version 可以查看当前k8s的版本,初始化集群的时候需要

  https://cloud.tencent.com/developer/article/1353427  

3、关闭swap

  sudo swapoff -a

  sudo mount -n -o remount,rw /

  vim /etc/fstab //注释 swap 那一行

  https://blog.csdn.net/csdn_duomaomao/article/details/75142769

4、修改cgroupfs

  sudo vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

  增加--cgroup-driver=cgroupfs

  重启kubelet

  sudo systemctl daemon-reload

  sudosystemctl restart kubelet

  https://blog.csdn.net/Andriy_dangli/article/details/85062983

5、初始化k8s集群

  从某个版本开始 k8s 支持指定 image 源,这里使用的是阿里源—image-repository registry.aliyuncs.com/google_containers,感谢阿里的大佬

  kubeadm init —apiserver-advertise-address={master ip} —image-repository registry.aliyuncs.com/google_containers —kubernetes-version {k8s-version} —service-cidr=10.1.0.0/16 —pod-network-cidr=10.244.0.0/16

  根据提示输入命令。

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

6、安装flannel

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

  如果flannel的镜像下载不了,先把 flannel 镜像从其他地方搞到手。

  从github flannel下载地址 可以下载flannel的docker镜像,通过docker load -i {文件名} 加载即可,如: docker load -i flanneld-v0.11.0-amd64.docker。

  每个节点都需要flannel 的镜像,所以网络不行的,建议从github上下载了对应的版本的镜像后,每个节点都load一下。

7、node加入集群

  运行上面拷贝的命令,加入集群,如果token过期使用 kubeadm 创建一个新的token https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

8、完成

  在master上运行 kubectl get node 即可看到节点已经加入到集群中。

如果命令报错,admin.conf 文件无权访问,运行 chmod 666 xx.conf 文件名

最后感谢各位以上链接的大佬的分享,加上一个官网 https://kubernetes.io/docs/setup