k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问

liujie
liujie
发布于 2023-09-11 / 47 阅读
0
0

k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问

k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问问题

在kubernets中不同命名空间的服务相互访问

涉及到的是Pod和Service之间的相互访问,主要格式如下:

访问Pod:(注意下面不是直接pod的ip,而是由pod的ip组成的字符串)

    {pod-ip}.{namespace}.pod.cluster.local

  例如某pod的ip为  1.2.3.4,在命名空间default与DNS名称cluster.local将有一个域名:1-2-3-4.default.pod.cluster.local。

    {hostname}.{subdomain}.{namespace}.svc.cluster.local

    subdomain是在创建pod设定的属性,和hostname可以一起设置

    

    访问StatefulSet:

    {pod-name}.{service-name}.{namespace}.svc.cluster.local

    可以进入到pod中查看/etc/hosts

    

    访问Service:

    {service-name}.{namespace}.svc.cluster.local

修改pod的hostname和subdomain

可以在 Pod /Deployment中指定pod的 hostname 和 subdomain:,例如:

apiVersion: v1
kind: Pod
metadata:
  name: busybox
  labels:
    name: busybox
spec:
  hostname: busybox-1
  subdomain: busybox-subdomain
  containers:
  name: busybox
  - image: busybox
    command:
    - sleep
    - "3600"

因为pod的访问域名是hostname.custom-subdomain.default.svc.cluster.local

所以该 Pod 的域名是 busybox-1.busybox-subdomain.default.svc.cluster.local。

其他

其他方式见: https://blog.51cto.com/u_15858929/6310279


评论