使用hostAliases参数配置Pod的/etc/hosts文件
使用场景
DNS配置或其他选项不合理时,可以向pod的“/etc/hosts”文件中添加条目,使用hostAliases在pod级别覆盖对主机名的解析。
操作步骤
- 使用kubectl连接集群。
- 创建hostaliases-pod.yaml文件。
vi hostaliases-pod.yaml
Yaml中加粗字段为镜像及镜像版本,可根据实际需求进行修改:
apiVersion: v1 kind: Pod metadata: name: hostaliases-pod spec: hostAliases: - ip: 127.0.0.1 hostnames: - foo.local - bar.local - ip: 10.1.2.3 hostnames: - foo.remote - bar.remote containers: - name: cat-hosts image: tomcat:9-jre11-slim lifecycle: postStart: exec: command: - cat - /etc/hosts imagePullSecrets: - name: default-secret
表1 pod字段说明 参数名
是否必选
参数解释
apiVersion
是
api版本号。
kind
是
创建的对象类别。
metadata
是
资源对象的元数据定义。
name
是
Pod的名称。
spec
是
spec是集合类的元素类型,pod的主体部分都在spec中给出。具体请参见表2。
- 创建pod。
kubectl create -f hostaliases-pod.yaml
命令行终端显示如下信息表明pod已创建。
pod/hostaliases-pod created
- 查看pod状态。
kubectl get pod hostaliases-pod
pod状态显示为Running,表示pod已创建成功。
NAME READY STATUS RESTARTS AGE hostaliases-pod 1/1 Running 0 16m
- 查看配置的hostAliases是否正常,执行如下命令:
docker ps |grep hostaliases-pod
docker exec -ti 容器ID /bin/sh