【Kubernetes】Ingress
External Service vs Ingress
External Service
Ingress
Yaml Configuration Files
External Service
Ingress
Ingress and Internal Service configuration
How to configure Ingress in your Cluster
deploy nginx-ingress-controller
- 拉取nginx-ingress-controller的镜像
docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1
- 修改mandatory.yaml文件,指定部署nginx-ingress-controller的node
- 部署nginx-ingress-controller
kubectl apply -f mandatory.yaml
- 查看某个namespace下所有的资源
kubectl get all -n ingress-nginx -o wide
deploy ingress
- 创建ingress配置文件
vim ingress.yaml
#ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress
spec:
rules:
- host: daijiong.com
http:
paths:
- path: /
backend:
serviceName: tomcat-service
servicePort: 80
- 部署ingress
kubectl apply -f ingress.yaml
- 查看集群中所有namespace下面的ingress的详情信息
kubectl get ingress --all-namespaces -o wide
NAMESPACE NAME HOSTS ADDRESS PORTS AGE
default nginx-ingress daijiong.com 80 6m15s
deploy tomcat
- 创建tomcat的deployment文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
labels:
app: tomcat
spec:
replicas: 1
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: tomcat-service
spec:
ports:
- port: 80
protocol: TCP
targetPort: 8080
selector:
app: tomcat
- 部署tomcat
kubectl apply -f tomcat-deployment.yaml
Test
- 访问客户端主机配置host文件
112.124.8.57 daijiong.com
112.124.8.57这个IP为已经部署了nginx-ingress-controller的主机IP地址。
- 访问daijiong.com域名可以直接访问tomcat这个pod
Undeploy
- 删除已部署的tomcat
kubectl delete -f tomcat-deployment.yaml
- 删除已部署的ingress
kubectl delete -f ingress.yaml
- 删除已部署的ingress-controller
kubectl delete -f mandatory.yaml
More Use Cases of Ingress
Multiple paths for same host
Multiple sub-domains or domains
Configuring TLS Certificate - https
评论区