首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以kubernaties为终端用户的隔离应用程序

以kubernaties为终端用户的隔离应用程序
EN

Stack Overflow用户
提问于 2020-06-09 05:21:57
回答 1查看 64关注 0票数 0

我有传统的服务器应用程序栈:

  • database
  • app (ruby)
  • microservice (节点)

App可通过https://example.com实现

我的用户希望独立的个人应用程序(为了高可用性)通过连接字符串进行完全数据库访问。

因此,我们需要服务器应用程序栈:-个人(隔离)数据库-个人(隔离)应用程序-个人(隔离)微服务

应用程序必须由http://cloud.example.com/userX提供,userX是用户的登录名

我认为每个用户都应该有自己的名称空间。因此,个人数据库、应用程序和微服务器属于此命名空间。

另外,我现在为所有用户提供了一个名为“名称空间:kube”的信息:

代码语言:javascript
复制
# ? apiVersion: networking.k8s.io/v1beta1
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: mgrs
  namespace: kube-public
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - cloud.example.com
    secretName: cloud-tls
  rules:
  - host: cloud.example.com
    http:
      paths:
      - path: /user1
        backend:
          serviceName: user1-service
          servicePort: 80
      - path: /user2
        backend:
          serviceName: user2-service
          servicePort: 80
      ...

怎么可能和库伯内特斯在一起?也许我需要为每个用户设置几个入口?

也许它更容易使路径userX.example.com而不是cloud.example.com/userX?

EN

回答 1

Stack Overflow用户

发布于 2020-06-09 14:24:45

一种方法是使用一个Ngnix作为服务的动态代理,因为云将一个ConfigMap添加到用户服务中,

如果使用一个命名空间并将用户名放入服务名称,则应使用以下配置:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config-dns-file
data:
  nginx.conf: |
    server {
      listen 80;
      resolver kube-dns.kube-system.svc.cluster.local valid=5s;

      location ~ /(.*) {
        proxy_pass http://$1-service.default.svc.cluster.local; 
      }
    }

如果每个用户使用一个名称空间,并将用户名放入服务名称,则应该使用以下配置:

代码语言:javascript
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config-dns-file
data:
  nginx.conf: |
    server {
      listen 80;
      resolver kube-dns.kube-system.svc.cluster.local valid=5s;

      location ~ /(.*) {
        proxy_pass http://$1-service.$1.svc.cluster.local; 
      }
    }

与此相一致的另一种可能性是使用Nginx-Ingress控制器,并利用Ngnix作为入口控制器的优势,以及应用某些配置来实现您希望的功能的可能性。

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

https://stackoverflow.com/questions/62275555

复制
相关文章

相似问题

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