使用Ingress发布服务的流程(二)

2023-05-02 17:37:41 浏览数 (1)

暴露服务

在创建Service对象后,您需要将其暴露到集群外部,以便外部用户可以访问它。有几种方法可以暴露Kubernetes Service对象,包括ClusterIP、NodePort、LoadBalancer和ExternalName。

在这里,我们将使用NodePort暴露Service对象,以便从外部网络中的任何节点访问该服务。要暴露NodePort,请在Service对象的spec部分中添加type: NodePort字段,如下所示:

代码语言:javascript复制
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地址:

代码语言:javascript复制
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的响应。

0 人点赞