在kubernetes中,如何使用dns名称访问服务?
如何在部署文件中提供具有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:
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规则构建的。