Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 大摇大摆的用户界面在kubernetes内部试用_Docker_Kubernetes_Swagger - Fatal编程技术网

Docker 大摇大摆的用户界面在kubernetes内部试用

Docker 大摇大摆的用户界面在kubernetes内部试用,docker,kubernetes,swagger,Docker,Kubernetes,Swagger,我在Kubernetes上部署了swagger UI。现在,当点击试用按钮时,它不会向Kubernetes的内部服务发送请求 由于所有服务都在Kubernetes本地运行,我们必须使用HTTP,但我的招摇过市用户界面是在HTTPS上,因此也会出现混合内容错误 我们是否可以使用Kubernetes内部运行的swagger UI调用内部服务 这是我的演示版swagger.yaml: openapi: 3.0.1 servers: - url: '{scheme}://test-service'

我在Kubernetes上部署了swagger UI。现在,当点击
试用
按钮时,它不会向Kubernetes的内部服务发送请求

由于所有服务都在Kubernetes本地运行,我们必须使用
HTTP
,但我的招摇过市用户界面是在
HTTPS
上,因此也会出现混合内容错误

我们是否可以使用Kubernetes内部运行的swagger UI调用内部服务

这是我的演示版swagger.yaml:

openapi: 3.0.1
servers:
  - url: '{scheme}://test-service'
    variables:
      scheme:
        description: 'The Data Set API is accessible via https and http'
        enum:
          - 'https'
          - 'http'
        default: 'https'
info:
  description: >-
您可以使用:

kubectl-n端口前向svc/:
然后转到
localhost:


另一种方法是使用,有些选项取决于您的云提供商。

我建议使用入口,并在
https
域中添加更多规则

入口:

 apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: swagger-staging
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: swagger-ingress
  namespace: default
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /test-service(/|$)(.*)
        backend:
          serviceName: service-1
          servicePort: 80
      - path: service-2(/|$)(.*)
        backend:
          serviceName: service-2
          servicePort: 80
      - path: /service-3(/|$)(.*)
        backend:
          serviceName: service-3
          servicePort: 80
      - path: /service-4(/|$)(.*)
        backend:
          serviceName: service-4
          servicePort: 80
      - path: /service-5(/|$)(.*)
        backend:
          serviceName: service-5
          servicePort: 80

注意:如果您尝试使用https更新入口,然后尝试使用port forward,则将无法工作,并且会出现浏览器混合内容的错误。

至少对于多个云提供商,还支持内部负载平衡器。你试过了吗?也许你可以先试试内部负载平衡器。我试过一次。你指的是哪一个?
对不起,不能提高投票率,这也有点帮助。
由于声誉不高,不能提高你的答案。因为那里有13个,所以。非常感谢您的帮助并抽出时间回复。现在我已经使用了相同的规则并使用https更新了入口,
 apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: swagger-staging
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  name: swagger-ingress
  namespace: default
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /test-service(/|$)(.*)
        backend:
          serviceName: service-1
          servicePort: 80
      - path: service-2(/|$)(.*)
        backend:
          serviceName: service-2
          servicePort: 80
      - path: /service-3(/|$)(.*)
        backend:
          serviceName: service-3
          servicePort: 80
      - path: /service-4(/|$)(.*)
        backend:
          serviceName: service-4
          servicePort: 80
      - path: /service-5(/|$)(.*)
        backend:
          serviceName: service-5
          servicePort: 80