华为云主机搭建单机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

步骤流程

主从节点都要操作

  1. 开放端口(我这开放全部端口,不合理,只是为了简单)
  2. 分别设置hostname
sudo hostnamectl set-hostname master1
sudo hostnamectl set-hostname node1
  1. 禁用swap,确保每个节点上 MAC 地址和 product_uuid 的唯一性sudo cat /sys/class/dmi/id/product_uuid,允许 iptables 检查桥接流量,关闭防火墙
swapoff -a
sudo systemctl disable --now ufw

cat <
  1. 安装docker
curl -fsSL get.docker.com | bash
  1. 配置docker
sudo mkdir /etc/docker
cat <
  1. 安装kubeadm、kubelet 和 kubectl,使用阿里云镜像
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 

cat </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
  1. 创建集群,主节点执行
kubeadm config images pull --kubernetes-version 1.21.10 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
  1. 执行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
  1. 执行init的时候,新开一个窗口。修改如下配置
vim /etc/kubernetes/manifests/etcd.yaml

在这里插入图片描述

  1. 安装网络插件(主节点)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
  1. 添加从节点
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

修改

你可能感兴趣的:(k8s,kubernetes,华为云)