暴露服务
在创建Service对象后,您需要将其暴露到集群外部,以便外部用户可以访问它。有几种方法可以暴露Kubernetes Service对象,包括ClusterIP、NodePort、LoadBalancer和ExternalName。
在这里,我们将使用NodePort暴露Service对象,以便从外部网络中的任何节点访问该服务。要暴露NodePort,请在Service对象的spec
部分中添加type: NodePort
字段,如下所示:
apiVersion: v1
kind: Service
metadata:
name: example-service
spec:
selector:
app: example
ports:
- name: http
port: 80
targetPort: 8080
type: NodePort
在将Service对象更改为NodePort类型之后,Kubernetes将随机分配一个节点端口,以便您可以从外部网络中访问该服务。您可以使用kubectl get services
命令查看分配的端口。
测试Ingress
完成上述步骤后,您可以测试Ingress是否正常工作。您可以使用curl命令或浏览器访问Ingress的IP地址和路由路径来测试它。
首先,使用kubectl get ingress
命令获取Ingress的IP地址:
kubectl get ingress
输出应该类似于以下内容:
代码语言:javascript复制eNAME CLASS HOSTS ADDRESS PORTS AGE
example-ingress <none> example.com 10.0.0.1 80 10m
然后,使用curl命令测试Ingress是否正常工作:
代码语言:javascript复制curl http://10.0.0.1/test
您应该收到来自example-service
的响应。