Kubernetes Workshop Teil 4: Docker und Rancher

Heute ist es soweit, wir wollen Rancher in Betrieb nehmen. In Teil 2 haben wir uns 4 Server eingerichtet. In meinem Fall sieht das geplante Setup so aus:

NameCoresRAMIPZweck
defiant48 GB10.0.0.1Rancher-Installation
discovery616 GB10.0.0.2Master, Worker
reliant830 GB10.0.0.3Worker
yorktown616 GB10.0.0.4Worker

Auf allen Maschinen benötigen wir Docker. Ich verwende nicht die Docker-Pakete aus Ubuntu 18.04 sondern die aktuellen Dockerversionen gemäß der Anleitung bei Docker:

apt-get remove docker docker-engine docker.io containerd runc

apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

Wenn man die ufw-Firewall in Verbindung mit Docker einsetzt, kann es sein, dass Ports geöffnet werden, die ich in der Firewall gar nicht erlaube. Das liegt daran, dass docker Kommandos mit iptables ausführt. Dazu gibt es im Internet einige Artikel. Eine Möglichkeit, das Verhalten zu deaktivieren, ist das Setzen der Option iptables=false. Ich habe das in der /etc/docker/daemon.json getan:

cat /etc/docker/daemon.json 
{
    "iptables": false
}

Ob das irgendwann zu Problemen führt, weiß ich noch nicht. Bisher haben alle Anwendungen, die ich dann deployed habe, funktioniert. Im nächsten Schritt muss docker noch aktiviert und gestartet werden:

systemctl enable docker
systemctl start docker

Mit docker info kann man prüfen, ob der Daemon läuft:

docker info

Super, sobald Docker läuft, können wir endlich Rancher installieren. Wie bereits gesagt, reicht mir für meine Experimente eine single node installation. Es soll auch automatisch ein entsprechendes SSL-Zertifikat per LetsEncrypt erstellt werden. Das erreicht man mit der Angabe der Option –acme-domain. Dazu „ruft“ LetsEncrypt die angegebene Domain auf und muss den Server auf dem http-Port erreichen können. Also öffnen wir in der Firewall auf defiant noch den Port. Wir wollen per https zugreifen, also machen wir den auch auf:

ufw allow http
ufw allow https

Ich nehme die aktuelle Version und verwende rancher 2.4.2. Ein einfacher docker-Befehl auf dem ersten Server defiant reicht aus:

docker run -d --restart=unless-stopped -p 8080:80 -p 8443:443 rancher/rancher:v2.4.2 --acme-domain rancher.ronnywalter.de

Nun sollte ein Container laufen:

docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                      NAMES
cd325b199817        rancher/rancher:v2.4.2   "entrypoint.sh --acm…"   3 weeks ago         Up 15 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   tender_sammet

Nun sollten wir mit dem Browser die entsprechende URL aufrufen können und haben dabei wie von Wunderhand ein gültiges Zertifikat, also in meinem Fall https://rancher.ronnywalter.de

Rancher begrüßt euch mit der Bitte, ein neues Admin-Passwort festzulegen:

Anschließen bestätigt man noch die Domain und hat dann eine lauffähige Rancher-Installation, allerdings noch ohne einen Kubernetes-Cluster. Ich lege mir immer unter Security/Users einen persönlichen (Admin-)User an, logge mich mit diesem ein und sperre dann den Admin-Account.

Im nächsten Teil werden wir einen Kubernetes-Cluster anlegen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.