引用:Kubernetes(一) 跟着官方文档从零搭建K8S
安装
阿里源配置
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
然后安装K8s
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
修改网络配置
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
配置启动
master节点配置
1、生成初始化配置文件
kubeadm config print init-defaults > kubeadm-init.yaml
- advertiseAddress要改成自己的IP
- 改源:将imageRepository: k8s.gcr.io修改为imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
2、下载镜像
kubeadm config images pull --config kubeadm-init.yaml
3、初始化
kubeadm init --config kubeadm-init.yaml
image.png
然后根据警告 启动一下kubelet.service
systemctl enable kubelet.service
根据报错,发现iptables没设置为1,设置一下即可
设置iptable
根据报错,关一下swap
关闭swap
启动完毕
image.png
最后两行需要保存下来,worker节点接入的时候,需要配置这个hash
4、配置环境,让当前用户可以使用kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
测试:获取节点信息
kubectl get node
image.png
NotReady是因为还没配置网络
5、网络配置
下载描述文件
wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
获取配置文件中的子网网段信息,修改calico.yaml,将192.168.0.0/16修改为10.96.0.0/12。此处calico.yaml的ip必须与kubeadm-init保持一致。
cat kubeadm-init.yaml | grep serviceSubnet:
image.png
6、初始化网络
kubectl apply -f calico.yaml
然后节点就已经ready了
image.png
安装好后再次启动:
Master初始化
// 记得关闭swap
swapoff -a
// 启动kubelet
systemctl enable kubelet
systemctl start kubelet
// 写入启动配置
kubeadm config print init-defaults > kubeadm-init.yaml
/* 修改配置内容 */
advertiseAddress : {localIP}
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
// 初始化master节点
kubeadm init --config xxx.config --ignore-preflight-errors=all
Worker节点
// 记得关闭swap
swapoff -a
// 启动kubelet (好像不启动也行)
systemctl enable kubelet
systemctl start kubelet
// 加入Master节点网络
...... Master启动时候会给token出来,用那句kubeadm join ...
移除节点、添加节点
引用:kubernetes集群节点的移除与加入
重点:
kubeadm token create --print-join-command
遇到的问题
[kubelet-check] Initial timeout of 40s passed.
超时,引用解决方案:https://blog.csdn.net/qq_19107011/article/details/92802571
网友评论