当前位置: 首页 > 知识库问答 >
问题:

设置多个入口、服务、部署资源和云DNS

闾丘选
2023-03-14

本质上,我想为每个包含一个或多个子域的服务设置一个入口,所有这些入口都指向同一个集群。现在,我通过每个入口获得不同的临时IP。我可以创建一些转发规则,将所有流量指向静态IP转到集群,然后可能创建一个通配符DNS条目,将所有子域指向静态IP吗?

这是一个类似于我正在使用的示例配置:

apiVersion: v1
kind: Service
metadata:
  name: api-service
  labels:
    name: api-service
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 3000
      protocol: TCP
  selector:
    name: api-deployment
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: api-deployment
  labels:
    name: api-deployment
spec:
  template:
    metadata:
      labels:
        name: api
    spec:
      containers:
        - image: us.gcr.io/[project]/hello-world:1.0.0
          name: api
          ports:
            - containerPort: 3000
          env:
            - name: NAME
              value: api
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: api-ingress
spec:
  backend:
    serviceName: api-service
    servicePort: 80
  rules:
  - host: api.example.com
    http:
      paths:
      - backend:
          serviceName: api-service
          servicePort: 80

我在kube集群上创建这些资源,如下所示:

$ kubectl create -f api.yml

然后查看这样创建的入口:

$ kubectl get ing
NAME              RULE             BACKEND           ADDRESS          AGE
api-ingress       -                api-service:80    130.211.32.223   1h
                  api.example.com
                                   api-service:80

现在,假设您复制了上面的yaml,并将服务、部署和入口名称更改为api-2,然后创建这些名称。你最终会得到这样的结果:

$ kubectl get ing
NAME              RULE             BACKEND           ADDRESS          AGE
api-ingress       -                api-service:80    130.211.32.223   1h
                  api.example.com
                                   api-service:80
api-2-ingress     -                api-2-service:80  130.211.22.214   1h
                  api-2.example.com
                                   api-2-service:80

这很好。。。但我需要确保所有流量达到*。实例com连接到集群,以便入口可以发挥其魔力,将请求路由到正确的服务。

我知道我可以创建一个入口资源,并对其进行修补,而不是创建一个新的入口资源,但我正试图避免这种情况,并希望我可以为每个服务创建一个入口资源。

这有可能吗?

相关:https://github.com/kubernetes/kubernetes/issues/26935

共有1个答案

逄宁
2023-03-14

每个入口资源将有一个单独的IP。如果您需要在域之间共享一个IP,那么您需要在同一个入口资源中配置两个域。如果您不想直接在命令行上修补,请尝试kubectl编辑

 类似资料:
  • 在保持云不可知的情况下创建一些通用组件来部署入口是否重要? 其他公司如何将它们的入口资源部署到k8s集群?

  • 想要快速体验 FinClip 的完整功能? 从企业端、到运营端,从前端页面到数据库 部署社区版,感受 FinClip 的强大能力! 现在,只需 2 步,即可完成: 准备一台云服务器(本指南适配),也可使用桌面服务器; 按照本指南执行 “自动部署” 脚本。 在完成部署后,你还可以: 在 小程序市场 (opens new window) 中获取示例小程序及代码包 只需5行代码,让小程序在你的APP中跑

  • 这里我的疑问是,当我们将这个应用程序部署到云中时,我们需要在application.properties中做什么更改?,因为我们不知道server.port和cloud中的“eureka.client.serviceurl.defaultzone”,这里我只使用localhost运行。 那么我们需要如何在配置中遵循云部署过程呢?我是Spring Cloud初学者,对这些配置有很多困惑。

  • 问题内容: 我有一个项目,其中将来自多个来源的数据处理为某些数据结构。程序完成这些结构的构建后,我希望它建立一个服务器,使用户可以手动微调这些结构。我认为使用Spring Boot设置的嵌入式Tomcat服务器上的Spring MVC正是我所需要的。 我想使用Thymeleaf作为查看技术,因此 和 但是,即使在处有一个查看文件,服务器对URL的回复也是 在调试器中单步执行代码后,似乎在某个时候(

  • 我正在做一个生产线的模拟,它是通过Excel建立的。现在有一个,需要为每台机器自由设置工人班次,总共三个班次。 我的想法是创建三个不同的时间表,表示三个班次中的每一个,然后在ResourcePool中使用If语句设置每个班次的使用。如图所示,在此处输入图像描述 提前致谢

  • 现在我正在使用Helm来部署我的Kubernetes资源,我在这里读到... Kubernetes类型的[Helm]安装顺序由kind_sorter.go中的枚举InstallOrder给出 在该文件中,order既没有提到也没有提到作为资源,这意味着Helm在安装了其InstallOrder列表(特别是)之后安装这些资源类型。这似乎与run在我的图表上的输出相匹配,其中顺序指示K8S服务目录资源