相关的 YAML 文件在:http://timd.cn/code/ingress-demo/
Kubernetes:
xxxxxxxxxx# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8s-102 Ready <none> 28d v1.23.1master Ready control-plane,master 28d v1.23.1xxxxxxxxxxkubectl apply -f namespace.yaml查看:
xxxxxxxxxx# kubectl get namespace ingress-nginxNAME STATUS AGEingress-nginx Active 46sxxxxxxxxxxkubectl apply -f configmap.yaml查看:
xxxxxxxxxx# kubectl -n ingress-nginx get cm nginx-configurationNAME DATA AGEnginx-configuration 0 105sxxxxxxxxxxkubectl apply -f tcp-services-configmap.yaml查看:
xxxxxxxxxx# kubectl -n ingress-nginx get cm tcp-servicesNAME DATA AGEtcp-services 0 36sxxxxxxxxxxkubectl apply -f udp-services-configmap.yaml查看:
xxxxxxxxxx# kubectl -n ingress-nginx get cm udp-servicesNAME DATA AGEudp-services 0 34sxxxxxxxxxxkubectl apply -f rbac.yaml查看:
x
# 查看账号kubectl -n ingress-nginx get sa nginx-ingress-serviceaccount
# 查看集群角色kubectl -n ingress-nginx get ClusterRole nginx-ingress-clusterrole
# 查看角色kubectl -n ingress-nginx get Role nginx-ingress-role
# 查看集群角色绑定kubectl -n ingress-nginx get ClusterRoleBinding nginx-ingress-clusterrole-nisa-binding
# 查看角色绑定kubectl -n ingress-nginx get RoleBinding nginx-ingress-role-nisa-bindingxxxxxxxxxxkubectl apply -f default-backend.yaml查看:
xxxxxxxxxx# 查看 Servicekubectl -n ingress-nginx get svc default-http-backend
# 查看 Deploymentkubectl -n ingress-nginx get deploy default-http-backend
# 查看 Podkubectl -n ingress-nginx get pod -l "app=default-http-backend"xxxxxxxxxxkubectl apply -f service-nodeport.yaml查看:
xxxxxxxxxx# kubectl -n ingress-nginx get svc ingress-nginxNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEingress-nginx NodePort 10.105.79.200 <none> 80:30080/TCP,443:30443/TCP 39sxxxxxxxxxxkubectl apply -f with-rbac.yaml查看:
x
# 查看 Deploymentkubectl -n ingress-nginx get deploy nginx-ingress-controller
# 查看 Podkubectl -n ingress-nginx get pod -l "app=ingress-nginx"在集群外执行(其中 192.168.56.101 是 Kubernetes 的任意 Node 的 IP):
xxxxxxxxxx% curl -I "http://192.168.56.101:30080/healthz"HTTP/1.1 200 OKDate: Wed, 30 Nov 2022 06:33:48 GMTContent-Type: text/htmlContent-Length: 0Connection: keep-alivekubectl apply -f deploy-demo.yaml查看:
# 查看 Servicekubectl -n default get svc myapp
# 查看 Deploymentkubectl -n default get deploy myapp-backend-pod
# 查看 Podkubectl -n default get pod -l "app=myapp,release=canary"xxxxxxxxxxkubectl apply -f ingress-myapp.yaml查看:
xxxxxxxxxxkubectl -n default describe ingress ingress-myapp在集群外执行(其中 192.168.56.102 是 Kubernetes 的任意 Node 的 IP):
xxxxxxxxxx% curl --resolve "test.com:30080:192.168.56.102" "http://test.com:30080/"Hello MyApp | Version: v2 | <a href="hostname.html">Pod Name</a>xxxxxxxxxxroot@k8s-101:~/ingress# kubectl -n ingress-nginx get pod -l "app=ingress-nginx"NAME READY STATUS RESTARTS AGEnginx-ingress-controller-5f466d6b4d-2wsjs 1/1 Running 0 16mroot@k8s-101:~/ingress# kubectl -n ingress-nginx exec -it nginx-ingress-controller-5f466d6b4d-2wsjs -- /bin/bashI have no name!@nginx-ingress-controller-5f466d6b4d-2wsjs:/etc/nginx$进入容器后查看 /etc/nginx/nginx.conf。