有网络有代理有root权限
关闭firewalld
systemctl disable firewalld
systemctl stop firewalld
关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
配置网络
yum install -y ipvsadm
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
sysctl -p
yum install -y epel-release
yum install -y bridge-utils
modprobe br_netfilter
echo 'br_netfilter' >> /etc/modules-load.d/bridge.conf
echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf
echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf
sysctl -p
安装containerd
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y containerd.io
systemctl start containerd
systemctl enable containerd
echo 'runtime-endpoint: unix:///run/containerd/containerd.sock' >> /etc/crictl.yaml
echo 'image-endpoint: unix:///run/containerd/containerd.sock' >> /etc/crictl.yaml
echo 'timeout: 10' >> /etc/crictl.yaml
echo 'debug: false' >> /etc/crictl.yaml
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
systemctl restart containerd
添加k8s yum源
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
EOF
安装kubelet、kubectl、kubeadm
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet
生成配置文件并修改
# 生成配置
kubeadm config print init-defaults > kubeadm-init.yaml
# 修改 localAPIEndpoint.advertiseAddress 为本地IP
# 修改 nodeRegistration.name 为节点名称
# 修改 kubernetesVersion
# 新增 networking.podSubnetnet=10.244.0.0/16
下载镜像
kubeadm config images pull --config kubeadm-init.yaml
初始化
kubeadm init --config kubeadm-init.yaml --upload-certs
根据提示添加一下内容到环境中
export KUBECONFIG=/etc/kubernetes/admin.conf
安装calico
curl -O -L https://github.com/projectcalico/calico/blob/v3.27.2/manifests/calico.yaml
# 去掉 CALICO_IPV4POOL_CIDR 注释部分,值修改为上文 podSubnetnet 的值
kubectl apply -f calico.yaml
安装helm
安装OpenEBS
# 去掉Taint
kubectl taint nodes nodename node-role.kubernetes.io/control-plane-
helm repo add openebs https://openebs.github.io/charts
helm repo update
helm install openebs --namespace openebs openebs/openebs --create-namespace
# 将 `openebs-hostpath` 设置为默认的 StorageClass
kubectl patch storageclass openebs-hostpath -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
添加 master worker label
kubectl label nodes nodename node-role.kubernetes.io/master='master'
kubectl label nodes nodename node-role.kubernetes.io/worker='worker'
参考