配置环境介绍
使用2023年双11阿里云2c2g的服务器3台(几个小伙伴一起买的)
网络环境:
多账号没有内网,使用公网直连,并在安全组中对互相的公网ip进行全端口放行。
1个master节点和2个node节点
无自建Harbor仓库
云服务器推广链接:阿里云全新八代云服务器,强劲算力
集群初始化
在所有k8s节点上进行初始化
cat >> /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum makecache fast
yum install kubeadm kubectl kubelet -y
systemctl start kubelet
systemctl enable kubelet
cat > dockerimages.sh <<EOF
#!/bin/bash
images=$(kubeadm config images list --kubernetes-version=1.28.0 | awk -F '/' '{print $NF}')
for i in ${images}
do
docker pull registry.aliyuncs.com/google_containers/$i
docker tag registry.aliyuncs.com/google_containers/$i node5-196.com/google_containers/$i
#docker push registry.aliyuncs.com/google_containers/$i
#docker rmi registry.aliyuncs.com/google_containers/$i
done
EOF
master节点
cat > /etc/sysconfig/network-scripts/ifcfg-eth0:1 <<EOF
BOOTPROTO=static
DEVICE=eth0:1
IPADDR=101.133.228.54 (集群可访问到的IP,这里是公网IP)
PREFIX=32
TYPE=Ethernet
USERCTL=no
ONBOOT=yes
EOF
systemctl restart network
kubeadm init --kubernetes-version=1.28.2 \
--apiserver-advertise-address=101.133.228.54 \
--image-repository=registry.aliyuncs.com/google_containers \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=Swap \
--cri-socket=unix:///var/run/cri-dockerd.sock
export KUBECONFIG=/etc/kubernetes/admin.conf
Node节点
node节点加入
kubeadm join 101.133.228.54:6443 --token d6kpvf.xe8weg2wog34qws2 \
--discovery-token-ca-cert-hash sha256:8311f81dc626415874b384a1ace4aecc824f7b31e5d2439e5c6c4e7601317bc7 --cri-socket=unix:///var/run/cri-dockerd.sock
集群网络
这里用的是flannel。
由于没有使用私有仓库,所以需要在每个node节点上都执行flannel.sh从而获得镜像
echo "source <(kubectl completion bash)" >> ~/.bashrc && echo "source <(kubeadm completion bash)" >> ~/.bashrc && source ~/.bashrc
mkdir /data/kubernetes/networks/flannel -p
cd /data/kubernetes/networks/flannel
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
vim flannel.sh
#!/bin/bash
for i in $(grep image kube-flannel.yml | grep -v '#' | awk -F '/' '{print $NF}')
do
docker pull flannel/$i
docker tag flannel/$i registry.aliyuncs.com/google_containers/$i #需要修改为刚创建的harbor的仓库地址
# docker push registry.aliyuncs.com/google_containers/$i
docker rmi flannel/$i
done
sed -i '/ image:/s#docker.io/flannel#registry.aliyuncs.com/google_containers#' kube-flannel.yml
kubectl apply -f kube-flannel.yml
kubectl get pod -n kube-system