根据namespace使用多个ingress controller

默认情况下,我们一个k8s环境所有的namespace使用的是同一个ingress-control,为了满足每个namespace使用不同的ingress-control,我们怎么做呢?

参考1

参考2

参考3

参考4

修改和注意的点有:

  • 创建ingress-control的时期启动参数args里面加上配置ingress.class配置,名字自取:
spec:
  template:
     spec:
       containers
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes Ingress是一个控制器,它允许以一致的方式暴露服务并将流量路由到不同的服务,它可以在同一个IP地址和同一个端口上处理多个规则,这些规则定义了如何将入站请求路由到不同的服务或URI路径。 以下是如何配置Ingress规则的步骤: 1. 确认是否已经安装和启用了Ingress控制器。使用kubectl命令来查看是否有ingress-controller pod运行。 2. 在kubernetes集群中创建一个Ingress对象。这一步需要指定Ingress对象的metadata和spec字段。metadata中必须要指定一个名称,spec中必须要指定规则列表(rules),每个规则中需要定义host和对应的http(s)路径。 例如: ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress spec: rules: - host: example.com http: paths: - path: /api/v1 pathType: Prefix backend: service: name: api-service port: name: http ``` - host:用于匹配请求的主机名。 - http:HTTP协议规则,还有一个TLS协议规则,需要使用secret配置。HTTP和TLS规则不能同时出现。 - paths:一组定义要匹配请求和转发服务的路径规则。 - path:用于匹配传入请求的路径前缀。 - backend:后端服务的配置。 3. 创建服务对象 ```yaml apiVersion: v1 kind: Service metadata: name: api-service namespace: default spec: selector: app: api ports: - name: http port: 80 targetPort: 8080 ``` - 应该根据实际情况配置targetPort和selector字段。targetPort是要暴露的端口,selector指定要将请求转发到哪个Pod。 4. 部署后端服务的Pod ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: api spec: selector: matchLabels: app: api template: metadata: labels: app: api spec: containers: - name: api image: my-api-image ports: - containerPort: 8080 ``` - deployment对象需要指定pod的镜像和容器端口。 5. 应用ingress和service和deployment. ```bash kubectl apply -f your-configuration.yaml ``` 这些规则定义了如何将入站http请求路由到不同的Kubernetes服务。可以使用类似于nginx-ingress等的Ingress控制器来处理这些规则并负载均衡流量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值