以下是我的基本服务示例
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: test-svc
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/minScale: "1"
spec:
serviceAccountName: default
containers:
- image: ******************
imagePullPolicy: IfNotPresent
name: test-svc
envFrom:
- secretRef:
name: test-env
kubectl get ksvc
NAME URL LATESTCREATED LATESTREADY READY REASON
test-svc http://test-svc.kube-system.kasl.io test-svc-8v6gv test-svc-8v6gv True
网关+虚拟服务
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: httpbin-gateway
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: httpbin
spec:
hosts:
- "*"
gateways:
- httpbin-gateway
http:
- match:
- uri:
prefix: /headers
route:
- destination:
host: istio-ingressgateway.istio-system.svc.cluster.local
如果我在群集内执行 curl -v http://test-svc.kube-system.kasl.io ,则其工作正常 以下是我的基本服务示例
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: test-svc
spec:
template:
metadata:
annotations:
autoscaling.knative.dev/minScale: "1"
spec:
serviceAccountName: default
containers:
- image: ******************
imagePullPolicy: IfNotPresent
name: test-svc
envFrom:
- secretRef:
name: test-env
kubectl get ksvc
NAME URL LATESTCREATED LATESTREADY READY REASON
test-svc http://test-svc.kube-system.kasl.io test-svc-8v6gv test-svc-8v6gv True
网关+虚拟服务
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: httpbin-gateway
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: httpbin
spec:
hosts:
- "*"
gateways:
- httpbin-gateway
http:
- match:
- uri:
prefix: /headers
route:
- destination:
host: istio-ingressgateway.istio-system.svc.cluster.local
如果我在群集中正常运行 curl -v http://test-svc.kube-system.kasl.io
现在我想将这些服务公开给外部集群
答案 0 :(得分:0)
Knative使用共享的入口网关为Knative服务网格内的所有传入流量提供服务,该服务网格是knative-serving名称空间下的knative-ingress-gateway网关。默认情况下,它使用istio-system名称空间下的Istio网关服务istio-ingressgateway作为其基础服务。您可以按以下方式用自己的服务替换该服务[1],有关更多详细步骤,请参阅链接[2]。
[1] https://knative.dev/docs/serving/setting-up-custom-ingress-gateway/ [2] https://starkandwayne.com/blog/public-traffic-into-knative-on-gke/