如何使用HostAliases配置/etc/hosts

容器与中间件容器服务技术服务知识库
问题描述

当DNS服务未解析域名,如何在pod hosts文问添加一条记录,并在pod重启时不会删除此记录。

问题分析

pod中的hosts文件是由kubelet管理的,每次重启pod都会导致手动添加的记录被删除,可以通过PodSpec 的 HostAliases 字段来添加自定义条目。

问题解决

1.创建deployment

$ cat busybox.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: buxybox-hostaliases
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
    spec:
      hostAliases:
      - ip: "127.0.0.1"
        hostnames:
        - "3.3x.local"
        - "4.4x.local"
      - ip: "10.1.2.3"
        hostnames:
        - "5.5x.remote"
        - "6.6x.remote"            
      containers:
      - name: busybox
        image: busybox        #内置的linux大多数命令,多用于测试
        args:
        - /bin/sh
        - -c
        - sleep 10; touch /tmp/healthy; sleep 30000
        readinessProbe:           #就绪探针
          exec:
            command:
            - cat
            - /tmp/healthy
          initialDelaySeconds: 10         #10s之后开始第一次探测
          periodSeconds: 5                #第一次探测之后每隔5s探测一次

$ kubectl apply -f busybox.yaml

2.验证

$ kubectl get pod -n default|grep buxybox-hostaliases
buxybox-hostaliases-5665bf9fdd-p4grj   1/1     Running   0          45s

$ kubectl exec -it -n default buxybox-hostaliases-5665bf9fdd-p4grj -- sh -c 'cat /etc/hosts'
# 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
192.168.0.201   buxybox-hostaliases-5665bf9fdd-p4grj

# Entries added by HostAliases.
127.0.0.1       3.3x.local      4.4x.local
10.1.2.3        5.5x.remote     6.6x.remote
参考链接

[1] https://kubernetes.io/zh/docs/tasks/network/customize-hosts-file-for-pods/ 如果您有其他问题,欢迎您联系火山引擎技术支持服务

28
0
0
0
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论