这里写自定义目录标题

参考文档

主要步骤
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 <<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
  1. 安装docker
curl -fsSL get.docker.com | bash
  1. 配置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
  1. 安装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
  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

修改

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐