【问题标题】:In kubernetes how to access a service using dns names?在 kubernetes 中如何使用 dns 名称访问服务?
【发布时间】:2020-03-19 19:51:50
【问题描述】:

如何在部署文件中提供具有 dns 名称的服务,以便我可以从同一集群的其他服务访问该服务?

apiVersion: apps/v1
kind: Deployment

metadata:
  name: db
spec:
  selector:
    matchLabels:
      app: db
  replicas: 1
  template:
    metadata:
      labels:
        app: db
    spec:
      containers:
      - name: db
        image: mysql:5.7.29
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "root"
        volumeMounts:
        - mountPath: /var/log/mysql/
          name: mysql
      volumes:
      - name: mysql
        hostPath:
          path: "/home/sandeep/logs/mysql/"
---
apiVersion: v1
kind: Service
metadata:
  name: database
  labels:
    app: db
spec:
  selector:
    app: db
  type: ClusterIP
  ports:
  - name: database
    port: 3306
    targetPort: 3306

这是 mysql 部署文件,我怎样才能为这个服务提供一个 dns 名称?我需要在哪些方面做出改变?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    假设您在default 命名空间中创建了数据库服务,您可以从任何命名空间通过database.default.svc.cluster.local 和从同一命名空间通过database.svc.cluster.local 访问mysql。

    【讨论】:

    • 我可以进行 ping,但它显示 100% 的数据包丢失。 PING 10.152.183.111 (10.152.183.111):来自 172.25.8.164 的 56 个数据字节 36 个字节:超过生存时间
    • CoreDNS 和 kube 代理 pod 是否在 kube-system 命名空间中运行?
    • coreDNS 正在运行,但 kube-proxy 不是我如何启用它?
    • 它应该由 kubernetes 运行...pod 的 IP 是什么?提供 kubectl describe svc 数据库的输出。您是否尝试从另一个 pod ping 通?
    • Name: database Namespace: default Labels: app=db Annotations: <none> Selector: app=db Type: ClusterIP IP: 10.152.183.54 Port: database 3306/TCP TargetPort: 3306/TCP Endpoints: <none> Session Affinity: None Events: <none> 是的,我正在尝试从另一个 pod ping。
    【解决方案2】:

    DNS 基于服务名称和命名空间。在大多数情况下,您只需使用服务名称,但全名将是 database.default.svc.cluster.local 或类似名称,具体取决于您的域配置。

    【讨论】:

    • 我可以进行 ping,但它显示 100% 的数据包丢失。 PING 10.152.183.111 (10.152.183.111): 56 data bytes 36 bytes from 172.25.8.164: Time to live exceeded
    • 他们不是真正的主机,对 ping 没有任何反应。服务是由神奇的 iptables 规则构建的。
    猜你喜欢
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2018-08-29
    • 2021-11-30
    • 2017-03-29
    相关资源
    最近更新 更多