首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Kubernetes添加访问控制源

向Kubernetes添加访问控制源
EN

Stack Overflow用户
提问于 2019-08-12 20:17:22
回答 2查看 15.4K关注 0票数 5

由于Android Cordova应用程序出现以下错误,我试图允许访问控制原产地:

代码语言:javascript
复制
http://localhost:8080/#/: Line 0 : Access to XMLHttpRequest at 'https://api.v2.domain.com/api/v1/users/me/favorites?lat=42.5467&lng=-83.2113&radius=10.0&limit=5&search=' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我正在试图找出在Kubernetes中添加它的位置--我假设它在服务或部署的某个地方。

这两件事都是:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: domain-server
  annotations:
    dns.alpha.kubernetes.io/external: "api.v2.domain.com"
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-east-2:152660121739:certificate/8efe41c4-9a53-4cf6-b056-5279df82bc5e
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
spec:
  type: LoadBalancer
  selector:
    app: domain-server
  ports:
    - port: 443
      targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: domain-server
spec:
  replicas: 2
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 3
  revisionHistoryLimit: 10
  template:
    metadata:
      labels:
        app: domain-server
    spec:
      containers:
        - name: domain-server
          image: "152660121739.dkr.ecr.us-east-2.amazonaws.com/domain-server"
          imagePullPolicy: Always
          resources:
            limits:
              memory: "1200Mi"
            requests:
              memory: "900Mi"
              cpu: "200m"
          ports:
            - name: http
              containerPort: 8080
     ...

这是放置标题的正确位置吗?如果是这样的话,我们将如何在库伯奈特斯添加CORS呢?我注意到一些类似于Nginx的建议,但是我使用的应用程序不使用Nginx。

EN

回答 2

Stack Overflow用户

发布于 2019-08-12 20:38:50

这个问题与库伯奈特无关。浏览器执行CORS,在这里检查引用:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS。您还可以使用、curl、postman来查看内容,而不会出现CORS错误。

通常,nginx服务器可以修复这个问题,而kubernetes-nginx并没有什么不同。它基本上使用反向代理来控制服务。检查此引用以开始通过ingress修复CORS错误:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#enable-cors

票数 1
EN

Stack Overflow用户

发布于 2019-08-21 08:26:07

如果您使用Nginx,您将更容易在服务配置文件中添加以下注释:

代码语言:javascript
复制
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/configuration-snippet: |
   more_set_headers "Access-Control-Allow-Origin: $http_origin";

但是在您的例子中,问题似乎更多地与CORS联系在一起,而与Kubernetes cors-条款直接相关。你必须启用CORS。

您可以编辑kubernetes API服务器yaml文件,以使CORS工作。

将行--cors-allowed-origins="http://*"参数添加到/etc/default/kube-apiserver/etc/kubernetes/manifests/kube-apiserver.yaml文件中,这取决于您的kube配置文件位于何处。

代码语言:javascript
复制
spec:
containers:
- command:
  - kube-apiserver
  - --cors-allowed-origins=["http://*"]

然后重新启动库贝-阿皮瑟弗。

然后将服务配置文件中的注释dns.alpha.kubernetes.io/external: "api.v2.domain.com"更改为dns.alpha.kubernetes.io/external: "http://api.v2.domain.com",并应用更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57467736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档