提示:可以参考官方文档:
https://kubernetes.io/zh/docs/home/
文章目录
一、安装k8s master
代码如下:
# 更新apt源
vim /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
# 获取认证
sudo apt update && sudo apt install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
# 安装k8s master所需组件
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
# 初始化master(--pod-network-cidr=192.168.0.0/16,后面将部署calico网络)
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr=192.168.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
# root 用户多一步如下操作
export KUBECONFIG=/etc/kubernetes/admin.conf
# 查看部署情况
kubectl get pods --all-namespaces
二、安装calico网络
参考calico官方文档:
https://docs.projectcalico.org/getting-started/kubernetes/quickstart
# 查看相应pod全部running即可
kubectl get pods -n calico-system
三、安装 node节点
代码如下:
# 关闭swap
sudo swapoff -a
# 永久关闭swap
sed -ri 's/.*swap.*/#&/' /etc/fstab
sudo mount -a
# 安装k8s组件,更改源参考master
sudo apt-get install -y kubelet kubeadm
# 初始化node并加入k8s集群,token和地址等信息会显示在成功安装master之后(可以采用--ignore-preflight-errors=Swap忽略swap,不建议使用,会引出不可预估的问题,可参考官方文档)
kubeadm join 10.25.60.180:6443 --token n0qqyf.cb7wwitvt3u0zrgj --discovery-token-ca-cert-hash sha256:83b0386169cabed63d313d7cc8a94ce5d5c2e4a172d329161152e4a42eacacdd
四、本人遇到的问题
1、swap没有彻底关闭,导致node一直not ready
2、Failed to create pod sandbox: open /run/systemd/resolve/resolv.conf: no such file or directory
将master上对应目录/run/systemd/resolve/resolv.conf文件复制一份到子节点上即可。
如还不行,可试下如下方法:
1、首先kubectl -n kube-system edit configmap coredns
2、然后注释掉loop
3、最后kubectl -n kube-system delete pod -l k8s-app=kube-dns
总结
提示:多使用journalctl命令查看具体报错,不要盲目百度或google