在kubernetes中,如何使用dns名称访问服务?

在kubernetes中,如何使用dns名称访问服务?,kubernetes,Kubernetes,如何在部署文件中提供具有dns名称的服务,以便可以从同一集群的其他服务访问该服务 apiVersion: apps/v1 kind: Deployment metadata: name: db spec: selector: matchLabels: app: db replicas: 1 template: metadata: labels: app: db spec: containers:

如何在部署文件中提供具有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名称?我需要在哪个命名空间中进行更改?

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

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

我可以执行ping,但显示100%的数据包丢失。PING 10.152.183.111(10.152.183.111):56个数据字节,172.25.8.164中的36个字节:生存时间已过编码和kube代理吊舱正在kube系统命名空间中运行?coreDNS正在运行,但kube代理不是如何启用的?它应该由kubernetes运行…吊舱的IP是什么?提供kubectl Descripte svc数据库的输出。您正在尝试从另一个pod ping吗?
Name:数据库命名空间:默认标签:app=db注释:选择器:app=db类型:clustrep IP:10.152.183.54端口:数据库3306/TCP TargetPort:3306/TCP端点:会话关联:无事件:
是,我正在尝试从另一个pod ping。我可以进行ping,但它显示100%的数据包丢失<代码>PING 10.152.183.111(10.152.183.111):56个数据字节从172.25.8.164开始36个字节:超过生存时间它们不是真正的主机,对PING没有任何响应。服务是根据神奇的iptables规则构建的。