用kubeadm安装机器不下五回,今天玩istio时需要更换k8s版本,重装还是出错了,记录一下,现在技术太杂了,什么都涉及,不像原来做一块可以好几年。
OS为kali,Debian系:
1.配置k8s中国源
1.1 curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add
1.2 echo "deb https://mirrors..com/kubernetes/apt/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
1.3 apt-get update
2.IP table bridge package config,
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
3.安装组件
apt-get install -y kubectl=1.15.10-00 kubeadm=1.15.10-00 kubelet=1.15.10-00
由于kali 经常升级,需要确保k8s相关组件不被更新,istio最高支持1.15版本
apt-mark hold kubectl kubeadm kubelet
4.配置集群
kubeadm init --kubernetes-version=v1.14.1 --apiserver-advertise-address=192.168.5.28 --pod-network-cidr=10.244.0.0/16
5.拷贝kubectl配置文件
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
6.下载K8s管理images(被墙,需用azk8s.cn)
6.1 cat > pull.sh <<EOF
for i in `kubeadm config images list`; do
imageName=${i#k8s.gcr.io/}
docker pull gcr.azk8s.cn/google_containers/$imageName
docker tag gcr.azk8s.cn/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi gcr.azk8s.cn/google_containers/$imageName
done;
EOF
6.2 chmod u+x ./pull.sh
6.3 ./pull.sh
7.由于只有一台机器,默认是master,不可scheduler,变为可scheduler
kubectl taint nodes kali node.kubernetes.io/not-ready:NoSchedule-
8.安装网络,用最简单的overlay网络flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
9.上一步使用了quay.io/coreos/flannel:v0.11.0-amd64 image,也被墙,需手工下载
docker pull quay.azk8s.cn/coreos/flannel:v0.11.0-amd64
docker tag quay.azk8s.cn/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64 image
docker rmi quay.azk8s.cn/coreos/flannel:v0.11.0-amd64
最后使用kubectl get node 查看nodes状态
网友评论