2. 安装组件
🧧

2. 安装组件

属性
k8s

2.安装docker

yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io -y

2.1配置 systemd 来管理 docker 的 cgroup

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 enable docker sudo systemctl daemon-reload sudo systemctl restart docker

3. 配置kubernetes源

💡
我这里是arm架构,并且服务器不在大陆可以直接用Google的
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-aarch64 enabled=1 EOF

4. 安装 kubeadm、kubelet 和 kubectl

  • kubeadm:用来初始化集群的指令
  • kubelet:在集群中的每个节点上用来启动 Pod 和容器等
  • kubectl:用来与集群通信的命令行工具
yum install -y kubelet kubeadm kubectl kubernetes-cni --nogpgcheck --skip-broken systemctl enable kubelet

5.修改 kubelet 启动参数

💡
这里我nodes上没有修改,暂时没啥问题。 node hostname要用公网ip
添加 kubelet 的启动参数--node-ip=公网IP, 每个主机都要添加并指定对应的公网 ip, 添加了这一步才能使用公网 ip 来注册进集群
#ubuntu Centos位置可能会不同 sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
notion image
💡
以上master和node都需要做
💡
kubeadm reset 出错后重置配置

Master初始化集群

初始化集群

sudo kubeadm init \    --apiserver-advertise-address=公网ip \    --control-plane-endpoint=公网ip \    --service-cidr=10.10.0.0/16 \    --pod-network-cidr=10.122.0.0/16 \    #不写默认最新版本    --kubernetes-version=v1.22.0 \    #墙外服务器这个我也没加    --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
notion image
根据输出提示执行以下命令
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

修改kube-apiserver参数

在 master 节点,kube-apiserver 添加--bind-address和修改--advertise-addres
sudo vi /etc/kubernetes/manifests/kube-apiserver.yaml
  • -advertise-address 可能有
notion image

Node加入集群

用master安装成功后输出的加入命令,加入master
忘记保存可以重新打印
kubeadm token create --print-join-command

问题

💡
初始化报错了,可能是arm架构的原因也可能是oracle linux原因,其他系统自己看着办
💡
mkdir -p /etc/containerd && containerd config default > /etc/containerd/config.toml reboot