cd ../4
https://helm.sh/docs/intro/install/#from-homebrew-macos
helm repo add nginx-stable https://helm.nginx.com/stable
helm repo update
helm install nginx-ingress nginx-stable/nginx-ingress
kubectl apply -f 4-ns-po.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx
annotations:
kubernetes.io/ingress.class: "nginx"
namespace: demo-ns
spec:
rules:
- host: nginx-first.example.com
http:
paths:
- backend:
serviceName: nginx
servicePort: 80
path: /
kubectl apply -f 4-ingress.yaml
Вычислим адрес INGRESS
$ kubectl describe svc nginx-ingress-nginx-ingress | grep -e 'LoadBalancer Ingress:' -e 'External Traffic Policy:'
LoadBalancer Ingress: 178.154.247.129
External Traffic Policy: Local
Запрос без hostname выдаст 404
nrkk-osx:2 nrkk$ curl 178.154.247.129
<html>
<head><title>404 Not Found</title></head>
<body>
Запрос с hostname nginx-first.example.com выдаст нам наш pod
$ curl -H "Host: nginx-first.example.com" http://178.154.247.129/
<!DOCTYPE html>
<html>
$ kubectl get po
NAME READY STATUS RESTARTS AGE
nginx-ingress-nginx-ingress-7ff4fd9bb-kzkqp 1/1 Running 0 12m
$ kubectl logs nginx-ingress-nginx-ingress-7ff4fd9bb-kzkqp
37.204.229.220 - - [28/Jul/2020:12:54:34 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.54.0" "-"
37.204.229.220 - это ваш IP адрес
$ kubectl logs -n demo-ns pod/nginx
10.160.0.165 - - [28/Jul/2020:12:54:34 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.54.0" "37.204.229.220"
10.160.0.165 - это IP адрес POD ingres
$ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-ingress-nginx-ingress-7ff4fd9bb-kzkqp 1/1 Running 0 14m 10.160.0.165 cl197hq2nt1jltu5tmuc-yjyf <none> <none>
kubectl delete ns demo-ns
helm uninstall nginx-ingress