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

以上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

根据输出提示执行以下命令
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 可能有

Node加入集群
用master安装成功后输出的加入命令,加入master
忘记保存可以重新打印
kubeadm token create --print-join-command
问题
初始化报错了,可能是arm架构的原因也可能是oracle linux原因,其他系统自己看着办
mkdir -p /etc/containerd && containerd config default > /etc/containerd/config.toml
reboot