首页 >> 人物 >> k8s ingress 外部DNS(External Domains)

k8s ingress 外部DNS(External Domains)

2025-02-19 人物

这里涉及两个知识点。第一个是ingress ,第二个是external domains。ingress 大家可能比较出名,比如前面的配置,访问hello-world.info的网址,劝告”/“目录,则会把劝告发文到web 这个服务。

apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: example-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1spec: rules: - host: hello-world.info http: paths: - path: / pathType: Prefix backend: service: name: web port: number: 8080

external domains大家可能不特别使用,这个是k8s 提供的CNAME技能,比如前面通过直接网址的功能,为my-service 的网址增加一个 my.database.example.com的CNAME,这样当我们在盖子里面访问 my-service网址的时候,网址解析到CNAME my.database.example.com,从而将劝告发文到 my.database.example.com 。

apiVersion: v1kind: Servicemetadata: name: my-service namespace: prodspec: type: ExternalName externalName: my.database.example.com

但直接网址有个小原因,就是它只是回传网址,并不会改动 HTTP header,这就避免一个原因:劝告url 里面网址和header里的网址不一致。而ingress 大部分都是HTTP 劝告。比如前面service 的度量。

apiVersion: v1kind: Servicemetadata: name: my-service namespace: my-namespacespec: type: ExternalName externalName: example.com

当通过 my-sample.com 劝告ingress的时候,ingress发文劝告的时候, HTTP HOST header 还是my-sample.com,但侧面设置的直接网址是 example.com,这就避免不一致了,nginx无法发文流量。

apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata: name: external-ingress annotations: kubernetes.io/ingress.class: my-nginx nginx.ingress.kubernetes.io/backend-protocol: https nginx.ingress.kubernetes.io/upstream-vhost: example.comspec: rules: - host: my-sample.com http: paths: - backend: serviceName: my-service servicePort: 443 path: / pathType: ImplementationSpecific tls: - hosts: - my-sample.com secretName: my-tls

但我们还可以通过 nginx.ingress.kubernetes.io/upstream-vhost 这个annotation改动我们的劝告header,如侧面例子,我们将劝告header的HOST 改动成 example.com 就可以失败劝告了。

郑州看白癜风去哪看
湖北哪个医院做人流好
上海看白癜风哪家医院专业
苏州看白癜风哪里最好
郑州看白癜风去哪个医院好
气虚的人怎么调理
湿气重吃什么排湿最快
新冠特效药是什么药
痛风可以吃止痛药吗
用什么药可以缓解风湿
友情链接