Kubernetes dla każdego – sztuka konteneryzacji
Ingress - objekt API, który zarządza zewnętrznym dostępem do usługi w ramach klastra (usługi service)
Ingress Controller - implementacja obiektu Ingress w ramach klastra
Do wystawienia usługi na świat poza klaster nie jest konieczny Ingress, można wykorzystać:
Ruch wychodzący z klastra. Do zarządzania ruchem wychodzącym można wykorzystać NetworkPolicy, który definiuje zasady Ingress and Engress
az aks create -g szkchm_k8s_t6_l53 -n IngressDemoAKS --node-count 1 --location westeurope
az aks get-credentials --name IngressDemoAKS --resource-group szkchm_k8s_t6_l53
kubectl config get-contexts
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install kubernetes-helm
kubectl create serviceaccount -n kube-system tiller
ServiceAccountkubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
ClusterRolehelm init --service-account tiller
Inicjalizacja Tillera na klastrzehelm install stable/nginx-ingress --set controller.replicaCount=1 --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
Instalcja NGINX Ingress Controller w klastrze
kubectl get services
kubectl get services -l app=nginx-ingress
kubectl apply -f deployment.yaml
utworzenie deploymentu opisującego poda
kubectl get pod
kubectl get deployment
kubectl apply -f service.yaml
kubectl get svc
kubectl apply -f route.yaml
stworzenie obiektu Ingressu, opisujący powiązanie requestu z serwisem