Ubantu verwendet kubeadm, um kubernetes1.25.10+cri-docker bereitzustellen

Aufbau eines k8s-Clusters basierend auf dem Ubantu-System

Vorwort

        Es gibt noch relativ wenige Artikel zu den High-Version-K8s im Internet, daher werde ich nach langer Suche einen Artikel veröffentlichen und hoffe, allen zu helfen.

1. Was ist Kubernetes?

        Kubernetes wurde ursprünglich von Ingenieuren bei Google entworfen und entwickelt. Google, einer der ersten Mitwirkenden an der Linux-Container-Technologie, hielt einen öffentlichen Vortrag darüber, wie Google alles in Containern ausführt (die Technologie hinter den Cloud-Diensten von Google). Google stellt wöchentlich mehr als 2 Milliarden Container bereit, die alle auf seiner internen Plattform Borg basieren. Borg ist der Vorgänger von Kubernetes, und die Erkenntnisse aus der Entwicklung von Borg im Laufe der Jahre sind zu einem wichtigen Faktor geworden, der viele Technologien in Kubernetes beeinflusst.

2. Umweltvorbereitung

  1. Drei Ubantu-Gastgeber

  2. Es ist erforderlich, auf das Internet zugreifen zu können. Für die Offline-Installation müssen Ressourcen wie Spiegelbilder und abhängige Pakete im Voraus vorbereitet werden.

Der IP-Adressplan sieht wie folgt aus:

Knotenname Interne IP-Adresse interne Gateway-Adresse
k8s-master-1 192.168.1.1/24 192.168.1.254
k8s-Knoten-1 192.168.1.2/24 192.168.1.254
k8s-Knoten-2 19.168.1.3/24 192.168.1.254

Abhängigkeit hinzugefügt:

Da ich es in einer Testumgebung erstellt habe, verwende ich den Root-Benutzer für den Betrieb und markiere, welche Schritte jeder Knoten ausführen muss.

Drei-Knoten-Betrieb

  • Basiseinstellung
#临时关闭swap
swapoff -a
#配置内核参数,开启路由转发功能
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF
#生效内核配置
sysctl -p
  • Konfigurieren Sie Apt-Abhängigkeiten, installieren Sie Docker- und Cri-Docker-Plugins

Hier ist ein großes Loch! ! ! Das heißt, wenn die Version Ihres k8s-Clusters höher ist als die von cri-docker unterstützte Version, tritt beim Initialisieren des k8s-Clusters ein Antwortzeitlimit auf. Stellen Sie bei der Bestätigung, dass die in der Servicedatei konfigurierten Parameter korrekt sind, sicher, dass cri-docker dies unterstützt

Unterstützen Sie den k8s-Cluster, den Sie bereitstellen möchten!

#配置apt依赖环境
apt-get update
apt-get install -y ca-certificates curl gnupg lsb-release net-tools  
#添加gpg密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker.gpg

#设置docker源密钥
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list

#安装docker
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

#获取新版cri-docker包
wget https://ghproxy.com/https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd_0.3.2.3-0.ubuntu-jammy_amd64.deb
#安装cri-docker
dpkg -i cri-dockerd_0.2.5.3-0.ubuntu-jammy_amd64.deb


#添加cri-docker启动参数
sed -i -e 's#ExecStart=.*#ExecStart=/usr/bin/cri-dockerd --network-plugin=cni --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.8#g' /usr/lib/systemd/system/cri-docker.service

#重新加载服务的配置文件并且启动服务
systemctl daemon-reload
sysetmctl start cri-docker
systemctl enable cri-docker
  • Konfigurieren Sie die Kubernetes-Quelle und verwenden Sie die Ali-Quelle in China, um den Image-Pull zu beschleunigen
#更新apt源
apt-get update
apt-get install -y apt-transport-https curl

#配置阿里k8s源密钥
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
tee /etc/apt/sources.list.d/kubernetes.list <<-'EOF'
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF

#三节点安装kubeadm、kubectl、kubelet
apt-get update
apt-get install -y kubelet=1.25.10-00 kubeadm=1.25.10-00 kubectl=1.25.10-00

3. Ändern Sie die Initialisierungsdatei und konfigurieren Sie die Initialisierung

Masterknoten:

Sie können das Image im Voraus abrufen und in ein Docker-Image-Paket packen, um den Aufbau des Clusters zu beschleunigen.


[root@k8s-master-1~]# kubeadm config print init-defaults > kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.1.1 #修改
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///var/run/cri-dockerd.sock #修改
  imagePullPolicy: IfNotPresent
  name: k8s-master-1  #修改
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers #修改
kind: ClusterConfiguration
kubernetesVersion: 1.25.10  #修改
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16 #改
scheduler: {}


#master进行初始化,等待镜像拉取,如果提示cri报错,请检查是否是版本问题或者是cri-docker.service中的启动参数配置错误
[root@k8s-master-1~]# kubeadm init --config=kubeadm-config.yam

#进行基本配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

Knotenknoten:

Der Knotenknoten muss den Parameter –cri-socket /var/run/cri-dockerd.sock hinzufügen, um die Startmethode anzugeben, wenn er dem Cluster beitritt!

kubeadm join 192.168.1.1:6443 --cri-socket /var/run/cri-dockerd.sock --token 7dn4wz.v7uhvkf55b2vvi2h \
         --discovery-token-ca-cert-hash sha256:3ebd007a152158a603af63aa6f8fd28247a015f4c183504037d003fb7fc9ecfb

Viertens installieren Sie das Calio-Netzwerk-Plug-in

Masterknoten:

Das k8s-Netzwerk-Plug-In kann zwischen Flunnel, Calio usw. wählen. Verwenden Sie nach der Installation kubectl get po -A, um den erstellten Pod anzuzeigen. Da das Image abgerufen wird, dauert es lange, bis es sich im Status „Ausstehend“ befindet. Sie Sie müssen geduldig warten, bis alle Pods ausgeführt werden. Es ist ersichtlich, dass sich alle Knoten im Status „Bereit“ befinden

#获取yaml文件
wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/tigera-operator.yaml
wget https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/custom-resources.yaml

#安装calio
kubectl create -f tigera-operator.yaml
kubectl create -f custom-resources.yaml

Zusammenfassen

Es hat einen Nachmittag gedauert, einen kleinen Cluster zu installieren. Ich hoffe, er kann Ihnen einige Ideen als Referenz liefern! Austausch q 1257455837

Ich denke du magst

Origin blog.csdn.net/TttRark/article/details/131134612
Empfohlen
Rangfolge