华为云主机搭建单机k8s
华为云主机搭建单机k8s环境
·
参考文档
主要步骤
https://zahui.fan/posts/526ffc9a/
打开端口
https://www.cnblogs.com/xiangxisheng/p/7252742.html
init失败
https://zhuanlan.zhihu.com/p/410371256
环境准备
- Ubuntu 20.04 2U4G 两台,分别为master和node
步骤流程
主从节点都要操作
- 开放端口(我这开放全部端口,不合理,只是为了简单)
- 分别设置hostname
sudo hostnamectl set-hostname master1
sudo hostnamectl set-hostname node1
- 禁用swap,确保每个节点上 MAC 地址和 product_uuid 的唯一性sudo cat /sys/class/dmi/id/product_uuid,允许 iptables 检查桥接流量,关闭防火墙
swapoff -a
sudo systemctl disable --now ufw
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
- 安装docker
curl -fsSL get.docker.com | bash
- 配置docker
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker
- 安装kubeadm、kubelet 和 kubectl,使用阿里云镜像
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update && apt-get install -y apt-transport-https
# 查看可用的版本号
sudo apt-cache madison kubeadm
sudo apt install -y kubeadm=1.21.10-00 kubelet=1.21.10-00 kubectl=1.21.10-00
# 锁定版本,不随 apt upgrade 更新
sudo apt-mark hold kubelet kubeadm kubectl
- 创建集群,主节点执行
kubeadm config images pull --kubernetes-version 1.21.10 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
- 执行init,主节点执行
sudo kubeadm init \
--apiserver-advertise-address 116.204.xx.xx (公网IP) \
--kubernetes-version 1.21.10 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--upload-certs \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
- 执行init的时候,新开一个窗口。修改如下配置
vim /etc/kubernetes/manifests/etcd.yaml
- 安装网络插件(主节点)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
- 添加从节点
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
如果忘记
kubeadm token create --print-join-command
kubeadm join 116.204.xxx.xx:6443 --token 87tebm.xnyz305tiayc2fcf --discovery-token-ca-cert-hash sha256:c7d595fd95bf49e82382eec2695bc72afc4a75ab2c79e30e4fa343582bff77d8
采坑
- init公网ip
sudo kubeadm init \
--apiserver-advertise-address 116.204.xx.xx\
--kubernetes-version 1.21.10 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--upload-certs \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
- init失败重试
kubeadm reset -f
- init失败,一直开着,参考文档。
https://zhuanlan.zhihu.com/p/410371256 - 解决办法是在卡住时,另启一个命令行窗口修改初始化生成的 etcd.yaml 中的配置成示例图一样,进程会自动重试并初始化成功。
vim /etc/kubernetes/manifests/etcd.yaml
更多推荐
已为社区贡献1条内容
所有评论(0)