创建Ingress对象:
下面是一个简单的Ingress对象的示例,其中定义了一个基本的规则:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
在这个例子中,当访问my-app.example.com时,Ingress将流量路由到名为my-service的服务的80端口。
主机名路由和路径路由:
- 主机名路由: 你可以使用host字段指定主机名,这样Ingress将根据主机名进行路由。不同的主机名可以路由到不同的服务。
- 路径路由: 通过定义paths字段,你可以指定不同的路径规则,将流量路由到集群内的不同服务。在上述示例中,path: /表示根路径的路由。
TLS终止:
你还可以通过Ingress实现TLS终止,以提供加密的传输。以下是一个支持TLS的Ingress对象的示例:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
tls:
- hosts:
- my-app.example.com
secretName: my-tls-secret
在这个例子中,tls字段定义了一个TLS密钥对,通过secretName引用了一个Kubernetes中的Secret对象,其中包含了SSL证书和私钥。
启用Ingress控制器:
要使Ingress工作,你需要在Kubernetes集群中启用Ingress控制器。不同的云平台和部署环境可能有不同的Ingress控制器实现。一些流行的Ingress控制器包括NGINX Ingress Controller、Traefik、HAProxy Ingress等。
示例中使用Ingress:
使用kubectl创建Ingress对象:
kubectl apply -f my-ingress.yaml
请注意,实际部署中,你需要根据自己的需求和环境调整Ingress规则,以适应你的应用程序的路由和访问需求。Ingress提供了强大的灵活性,可以根据主机名、路径和TLS证书等条件,将流量动态路由到不同的服务,使得在Kubernetes中管理和配置外部访问变得更加简便。
转载请注明出处:http://www.zyzy.cn/article/detail/9734/Kubernetes