Kubernetes Pods如何访问外部域名

Pods如何访问外网域名


在Kubernetes环境中,并不是所有服务都适合部署中集群中,如数据库服务,在这种情况下集群中的Pods如何访问集群外的服务,有以下几种方式

CoreDNS方式

新增一段配置,如下范例

  • 范例
    .:53 {
        errors
        health {
           lameduck 15s
        }
        ready
    
        kubernetes cluster.local in-addr.arpa ip6.arpa {
    
          pods verified
          ttl 30
          fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        forward . /etc/resolv.conf {
          prefer_udp
        }
        cache 30
        loop
        reload
        loadbalance
    }
    internal.local:53 {
        forward . 192.168.56.247 192.168.44.204
        cache 30
    }

Endpoints类型的服务

ExternalName类型的服务

  • 范例
    **> mkdir -p  ~/mysql-endpoint
    > cd ~/mysql-endpoin
    > cat <<EOF > my-mysql-external.yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: my-mysql-external #此名字随便起
      namespace: my-first-app  #在固定的命名空间下
    spec:
      type: ExternalName 
      externalName: www.baidu.com ##提供方的服务完全限定域名,如rds域名等。
      ports:
        - port: 80
        
    ###  ExternalName类型的服务创建后,pod可以通过my-mysql-external.default.svc.cluster.local域名连接到外部服务,
    ####  或者通过my-mysql-external。当需要指向其他外部服务时,只需要修改spec.externalName的值即可。
     
    EOF

参考文献


https://blog.csdn.net/Coder_Boy_/article/details/132125876

posted @ 2023-12-03 03:04  MacoPlus  阅读(94)  评论(0编辑  收藏  举报