AlmaLinux 9.3, K8S 1.29.3 单节点, containerd 有代理环境搭建

331 阅读1分钟

有网络有代理有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

参考 Helm | Installing 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'

参考

  1. RockyLinux9.2安装k8s 1.27+calico+BGP+OpenELB - 掘金 (juejin.cn)
  2. 安装OpenEBS (timd.cn)