来自似乎有我不知道的局限性。即:
- 最大线大小为256。
- 名称服务器的最大数量为3。
- 最大域名长度为256。
- 最大搜索域限制为6。所有搜索域的字符总数不能超过256。
- 无文件大小限制。
在我的用例中(服务
和 kubernetes
executor中的高山/Debian容器中的GitLab作业)我对的线条尺寸限制256个chars 。
我发现,仅计算此限制服务别名(以及它们之间的空间)。例如,没有图像名称,也没有Localhost IP。
在我的测试示例(下面的代码块)中,当i cat/etc/hosts
时,我可以看到K8S' hostaliases
添加了 127.0.0.1 <的几个主机名
/code>,重复(不确定为什么)服务图像名称( jamesdbloom-mockserver
)。
整行是480个字符长;
没有图像名称的所有重复,它具有264个字符;
并且没有IP(及其空间定界符),它具有252个字符,使所有主机名可分解。如果我要使它们更长,那么在256炭限制限制之后的那些将无法解析。
但此限制仅适用于高山。基于Debian的图像可以处理更长的行/主机名。我的问题是为什么和 如何使高山像Debian一样接受更长的主机名。
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.194.59.11 runner-pjg8ywgf-project-922-concurrent-0q85mw
# Entries added by HostAliases.
127.0.0.1 jamesdbloom-mockserver service-123456-mockserver80 jamesdbloom-mockserver service-123456-mockserver81 jamesdbloom-mockserver service-123456-mockserver82 jamesdbloom-mockserver service-123456-mockserver83 jamesdbloom-mockserver service-123456-mockserver84 jamesdbloom-mockserver service-123456-mockserver85 jamesdbloom-mockserver service-123456-mockserver86 jamesdbloom-mockserver service-123456-mockserver87 jamesdbloom-mockserver service-123456-mockserver88
From https://documents.uow.edu.au/~blane/netapp/ontap/nag/networking/concept/c_oc_netw_maintaining_host_file_limits.html is seems that there are limitations I wasn't aware of. Namely:
- Maximum line size is 256.
- Maximum number of name servers is 3.
- Maximum domain name length is 256.
- Maximum search domains limit is 6. The total number of characters for all search domains cannot exceed 256.
- No file size limit.
In my use case (a GitLab job in Alpine/Debian container with services
and kubernetes
executor) I'm interested in line size limit of 256 chars.
I found out that to this limit only service aliases (and spaces between them) are counted. E.g. no image names and no localhost IP.
In my testing example (code block below), when I cat /etc/hosts
, I can see that k8s' HostAliases
added several hostnames for 127.0.0.1
, repeating (not sure why) service image name (jamesdbloom-mockserver
) for each one of them.
The whole line is 480 characters long;
without all repetitions of image name it has 264 chars;
and without IP (and its space delimiter) it has 252 chars which makes all hostnames resolvable. If I'd make them longer, the ones that are after the 256 char limit wouldn't be resolvable.
BUT this limitation only applies to Alpine. Debian-based images can handle much longer lines/hostnames. My question is WHY and HOW to make Alpine accept the longer/more hostnames as Debian does.
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.194.59.11 runner-pjg8ywgf-project-922-concurrent-0q85mw
# Entries added by HostAliases.
127.0.0.1 jamesdbloom-mockserver service-123456-mockserver80 jamesdbloom-mockserver service-123456-mockserver81 jamesdbloom-mockserver service-123456-mockserver82 jamesdbloom-mockserver service-123456-mockserver83 jamesdbloom-mockserver service-123456-mockserver84 jamesdbloom-mockserver service-123456-mockserver85 jamesdbloom-mockserver service-123456-mockserver86 jamesdbloom-mockserver service-123456-mockserver87 jamesdbloom-mockserver service-123456-mockserver88
发布评论