een Kubernetes Cluster op AWS opzetten met Kops
Kops wordt gebruikt om het Kubernetes cluster op de gemakkelijkst mogelijke manier op te brengen. Het is een command-line gereedschap dat gebruikt wordt om Kubernetes Clusters te maken. Kops ondersteunt officieel AWS, waar GCP, DigitalOcean, en OpenStack in Beta zijn. Kops kan ook Terraform bestanden genereren voor de vereiste cluster configuratie. Men kan met Kops niet alleen gemakkelijk een cluster aanmaken, maar ook de Kubernetes versie in het cluster wijzigen, verwijderen en upgraden.
In dit artikel bekijken we de stappen om een Kubernetes cluster met 1 master en 1 worker node op AWS te maken. Voor we verder gaan, wordt aangenomen dat je al bekend bent met Kubernetes
Pre-requisites
- AWS Account(Maak aan als je er geen hebt).
- EC2 Ubuntu 18.04 Instance (Klikhier om te leren hoe je een EC2 instance op AWS maakt ).
- S3 Bucket (Klikhier om te leren hoe je een S3 Bucket op AWS maakt).
- Domeinnaam (Zoek naar “Hoe koop je een Domeinnaam op AWS?” om de stappen voor het maken van een Domein op AWS te begrijpen).
- IAM Rol met voldoende/admin rechten(Klikhier om te leren een IAM rol op AWS te maken).
Wat zullen we doen?
- Log in op AWS.
- Bekijk de S3 Bucket, IAM Role.
- Koppel de IAM Rol aan de instantie.
- Installeer Kubectl en Kops op de EC2 instantie.
- Valideer Recordset regels en een hosted zone.
- Maak een Kubernetes Cluster met behulp van Kops.
- Verwijder het cluster.
Inloggen bij AWS
Klikhier om naar de login pagina te gaan waar je je credentials kunt invoeren om in het account te komen.
Zodra je met succes op je AWS account bent ingelogd, zie je de hoofd AWS Management Console als volgt.
Controleer de S3 Bucket, IAM Rol
Om een cluster te maken met Kops, hebben we een S3 bucket nodig waarin Kops alle cluster configuratie zal opslaan.
Controleer de emmer die je wilt gebruiken om Kops configuraties in op te slaan.
Controleer of de IAM rol die je gaat gebruiken voldoende/admin permissies heeft. Kops heeft geen admin permissies nodig, als je niet veel vertrouwd bent met AWS IAM en permissies en niet in toegangsproblemen wilt vervallen kun je admin permissie gebruiken.
Koppel de IAM Rol aan de instantie
Als je de rol hebt, koppel die dan aan de EC2 instantie die je gaat gebruiken om de kops commando’s uit te voeren. Ga naar EC2 –> selecteer de EC2 instance –> klik op Actions –> Security — > Modify IAM role.
Selecteer de IAM rol en sla de wijzigingen op.
Installeer Kubectl en Kops op de EC2 instantie
Tot nu toe heb je een S3 emmer en een EC2 instantie met de vereiste rol eraan gekoppeld. Log nu in op de EC2 instantie die je zult gebruiken om een cluster te maken met Kops.
De volgende stap is het installeren van Kubectl op de EC2 instantie.
Voer de volgende commando’s uit om kubectl op Ubuntu Server te installeren
curl -LO “https://dl.k8s.io/release/$(curl -L -s
curl -LO “https://dl.k8s.io/$(curl -L -s
echo “$(<kubectl.sha256) kubectl” | sha256sum –check
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
mkdir -p ~/.local/bin/kubectl
mv ./kubectl ~/.local/bin/kubectl
Controleer de kubectl versie met het volgende commando.
kubectl versie –client
Nu ben je klaar om Kops op dezelfde EC2 instantie te installeren.
Controleer of kops bestaat, zo niet installeer het dan met de volgende commando’s op Ubuntu Server.
kops
curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d ‘” -f 4)/kops-linux-amd64
chmod +x kops-linux-amd64
sudo mv kops-linux-amd64 /usr/local/bin/kops
Nu zou je kops op de server moeten hebben.
kops
Valideer Recordset regels en een gehoste zone.
Kops heeft de vereiste DNS records nodig om een cluster te bouwen.
Hier heb ik een tweede gehoste zone in route53.
Ook heb ik de NS servers van mijn SUBDOMAIN naar het PARENT domein in Route53 gekopieerd.
Ga naar Route53 — > Hosted zones — > Ga naar de belangrijkste standaard Hosted zone — > Zoek de recordset op en controleer de waarden.
Maak een Kubernetes Cluster met Kops
Nu zijn we helemaal klaar om een cluster te maken. Laten we, voordat we een cluster aanmaken, eens kijken wat we krijgen als we de clusters proberen op te sommen.
kops get clusters
Het bovenstaande commando zal mislukken omdat het een S3 bucket als parameter nodig heeft.
kops get clusters –state s3://kops.devopslee.com
Omdat er geen bestaande clusters zijn, zal het commando niets opnoemen.
Als je de naam van de s3 emmer niet als parameter aan het commando wilt geven, kun je de waarde ervan in de terminal exporteren naar de “KOPS_STATE_STORE” variabele.
exporteer KOPS_STATE_STORE=s3://kops.devopslee.com
Deze keer hoef je de S3 emmer niet op te geven in het commando
kops get clusters
Laten we nu proberen een cluster te maken met-
- 1 master node met de instantie van het type t2.medium
- 1 worker node met de instantie van het type t2.micro
- Beschikbaarheidszone als us-east-1a,us-east-1b,us-east-1c
kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c
Het bovenstaande commando geeft fouten omdat we geen ssh sleutel hebben opgegeven.
Controleer of je een sleutel-paar in je instantie hebt.
ls -l ~/.ssh/
Als je geen sleutel-paar hebt, kun je het aanmaken met het volgende commando.
ssh-keygen
Als je dit keer het create commando opnieuw uitvoert, zal het mislukken omdat de S3 door het vorige commando met cluster configuratie werd bijgewerkt, ook al mislukte het door de afwezigheid van de ssh sleutel.
kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c –ssh-public-key ~/.ssh/id_rsa.pub
Laten we dus de cluster configuratie verwijderen en het cluster opnieuw aanmaken met ssh sleutel.
kops delete cluster –name kops.devopslee.com –state s3://kops.devopslee.com –yes
Deze keer geven we de ssh publieke sleutel door tijdens het aanmaken van het cluster.
kops create cluster –name kops.devopslee.com –state s3://kops.devopslee.com –cloud aws –master-size t2.medium –master-count 1 –master-zones us-east-1a –node-size t2.micro –node-count 1 –zones us-east-1a,us-east-1b,us-east-1c –ssh-public-key ~/.ssh/id_rsa.pub
Eerst wordt de cluster configuratie aangemaakt.
Nu hebben we de cluster configuratie. Als we nog veranderingen in de configuratie willen aanbrengen kunnen we dat doen, anders kunnen we verder met het aanmaken van het cluster. Je kunt naar de S3 emmer gaan en daarin een cluster configuratie zien.
Ditmaal krijg je te zien dat het cluster beschikbaar is.
kops get cluster
Maar de middelen zijn nog niet aangemaakt.
Om de middelen meteen aan te maken, moeten we het cluster updaten met –yes als optie bij het commando.
kops update cluster –name kops.devopslee.com –yes
Het aanmaken van de cluster zal enige tijd duren. Je kunt de toestand van het cluster valideren met het volgende “validate” commando.
kops validate cluster –wait 10m
Zodra alle cluster resources zijn aangemaakt, is het cluster klaar voor gebruik.
Zodra de EC2 instances klaar zijn, werkt kops de Hosted zone bij met A records die IP’s van de master bevatten.
Je bent nu klaar om het cluster te gebruiken. Om bestaande pods in de standaard namespace te controleren voer je het volgende commando uit.
kubectl get pods
Je kunt zelfs pods uit alle namespaces controleren
kubectl get pods -A
Controleer knooppunten in het cluster.
kubectl get nodes
Om meer details van de nodes op te halen, gebruik je -o wide in het commando.
kubectl get nodes -o wide
Verwijder het cluster
Als je het cluster niet meer nodig hebt, kun je het eenvoudig verwijderen met Kops.
kops get cluster
Je hoeft maar een enkel commando uit te voeren.
kops delete cluster –name kops.devopslee.com –state s3://kops.devopslee.com –yes
Kops zal alle bronnen verwijderen die het voor het cluster heeft aangemaakt om het volledig functioneel te maken
Conclusie
In dit artikel zagen we alle stappen om een Kubernetes cluster te maken met Kops. We zagen dat Kops een domein nodig heeft om een volledig functioneel cluster te maken. We zagen hoe eenvoudig het is om een cluster te maken en te verwijderen met Kops.