Avançando com Kind
Criando um cluster com Ingress Ngnix
Crie um arquivo YAML com o seguinte comando:
nano kind-ingress.yaml
Cole o texto:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 80
protocol: TCP
- containerPort: 443
hostPort: 443
protocol: TCP
- role: worker
Pressione Ctrl + X
então y
para salvar e Enter
para fechar
Crei o cluster com o comando:
kind create cluster --name <nome do cluster> --config kind-ingress.yaml
Implemente o controlador do Ingress Nginx no cluster Kubernetes.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
Crie um arquivo YAML com o seguinte comando:
nano testing-ingress.yaml
Cole o seguinte texto substituindo <nome>
pelo nome da primeira aplicação e <nome2>
pelo nome da segunda aplicação:
kind: Pod
apiVersion: v1
metadata:
name: <nome>
labels:
app: <nome>
spec:
containers:
- name: <nome>-app
image: hashicorp/http-echo:0.2.3
args:
- "-text=FUNCIONOU_<nome>"
---
kind: Service
apiVersion: v1
metadata:
name: <nome>-service
spec:
selector:
app: <nome>
ports:
# Default port used by the image
- port: 5678
---
kind: Pod
apiVersion: v1
metadata:
name: <nome2>-app
labels:
app: <nome2>
spec:
containers:
- name: <nome2>-app
image: hashicorp/http-echo:0.2.3
args:
- "-text=FUNCIONOU_<nome2>"
---
kind: Service
apiVersion: v1
metadata:
name: <nome2>-service
spec:
selector:
app: <nome2>
ports:
# Default port used by the image
- port: 5678
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- http:
paths:
- pathType: Prefix
path: "/<nome>"
backend:
service:
name: <nome>-service
port:
number: 5678
- pathType: Prefix
path: "/<nome2>"
backend:
service:
name: <nome2>-service
port:
number: 5678
---
Pressione Ctrl + X
então y
para salvar e Enter
para fechar
Execute com o comando:
kubectl create -f testing-ingress.yaml
Confirme que os Pods estão com status Running
:
kubectl get pods
Os serviços estão rodando:
kubectl get svc
E o Ingress está correto:
kubectl get ingress
kubectl describe ingress <nome do ingress>
Agora você pode acessar: http://localhost/ Path
para ver a aplicação funcionando