说我有一个不在Kubernetes上托管的服务。我还在kubernetes集群上设置了一个入口控制器和证书管理器。
由于使用kubernetes入口来控制对服务的访问是如此简单和容易,因此我想拥有一个指向非kubernetes服务的kubernetes入口。
例如,我有一个托管在的服务https://10.0.40.1:5678
(需要ssl,但具有自签名证书),并且想要访问service.example.com
。
您可以通过为外部服务器手动创建Service和Endpoint对象来实现。
对象将如下所示:
apiVersion: v1 kind: Service metadata: name: external-ip spec: ports: - name: app port: 80 protocol: TCP targetPort: 5678 clusterIP: None type: ClusterIP --- apiVersion: v1 kind: Endpoints metadata: name: external-ip subsets: - addresses: - ip: 10.0.40.1 ports: - name: app port: 5678 protocol: TCP
然后,您可以创建一个Ingress对象,该对象指向external-ip
带有port的Service 80
:
apiVersion: extensions/v1beta1 kind: Ingress metadata: name: external-service spec: rules: - host: service.example.com http: paths: - backend: serviceName: external-ip servicePort: 80 path: /