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_proxy
und no_proxy
in festlegen group_vars/all.yml
und dabei diesen Proxy verwenden, um Assets aus ihrem ursprünglichen Platz zu ziehen.
Versuchen Sie es mit etwas wie apt-get install squid
oder 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.md
Dokument 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.