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
sudo
systemctl 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。