Kubespray in einer Offline-Umgebung (oder vor Ort)

Kubespray in einer Offline-Umgebung (oder vor Ort)

Ich bin neu bei K8s und Kubespray.

Mein Ziel ist es, einen K8s-Cluster in einer lokalen Umgebung aufzubauen. Mit EC2s, die über öffentliche IPs und Internetzugang verfügen, war alles in Ordnung. Aber bei komplizierteren Einschränkungen stecke ich fest. Unten ist meine Einschränkung.

  • 1 Bastion mit öffentlicher IP und Internetzugang
  • n Knoten, die weder über eine öffentliche IP-Adresse noch über einen Internetzugang verfügen

EntsprechendKubespray-Dokument, es sind ziemlich viele Einstellungen erforderlich. Aber meiner Meinung nach kann es, da Bastion über vollen Internetzugang verfügt, eine einfache Möglichkeit geben, mit Kubespray einen K8S-Cluster zu erstellen.

Gibt es dazu Blogs oder Schritt-für-Schritt-Anleitungen?

Antwort1

Soweit ich weiß, können Sie, wenn Ihre Bastion auf die öffentlichen Register und Repositories zugreifen kann, einen Squid-Server installieren, der Abfragen im Namen Ihrer Kubernetes-Knoten weiterleitet.

In diesem Fall handelt es sich nicht mehr um eine getrennte Bereitstellung, und wir können die Variablen http_proxy https_proxyund no_proxyin festlegen group_vars/all.ymlund dabei diesen Proxy verwenden, um Assets aus ihrem ursprünglichen Platz zu ziehen.

Versuchen Sie es mit etwas wie apt-get install squidoder dnf install squid. Eine einfache squid.conf könnte wie folgt aussehen:

http_port 3128
cache_log /var/log/squid/cache.log
cache_mem 256 MB
cache_dir aufs /var/spool/squid 10240 16 256
maximum_object_size 1024 MB
cache_effective_group proxy
hosts_file /etc/hosts
logfile_rotate 4
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined
coredump_dir /var/spool/squid
error_directory /usr/share/squid/errors/en
http_access allow all
http_reply_access allow all
cache allow all
icp_access allow all

Testen Sie die Konnektivität von einem Ihrer Kubernetes-Knoten:

# curl -vvv --proxy http://10.42.44.100:3128/ https://perdu.com
...
* Connected to 10.42.44.100 (10.42.44.100) port 3128 (#0)
...
* Establish HTTP proxy tunnel to perdu.com:443
...

Stellen Sie nun sicher, dass Ihr Kubespray-Inventar mithilfe dieses Proxys die richtigen Variablen einstellt. Sowohl die Container Runtime als auch die OS-Paketmanagerkonfiguration würden diese verwenden.


Wenn die Einrichtung dieses Proxys aus irgendeinem Grund nicht geeignet ist, müssen Sie alle in diesem offline-environment.mdDokument genannten Bilder und Dateien spiegeln.

Richten Sie vielleicht einen Nginx-Server für die Binärdateien und Dateien kubectl / etcd / ... ein und führen Sie einen Docker-Registry-Container aus, der diese Bilder spiegelt. Bedenken Sie jedoch, dass Ihre Container-Laufzeit ordnungsgemäß konfiguriert sein sollte, sodass unsichere Registrierungsfehler ignoriert werden (zusätzlich festzulegende Kubespray-Variablen), oder dass Ihr Betriebssystem der Zertifizierungsstelle vertrauen sollte, die Ihr Registrierungsserver-Zertifikat signiert hat.

verwandte Informationen