Kubernetes配置Pods中的hosts文件¶
在故障排查中(也可能测试环境),需要为 pod 中注入 /etc/hosts
配置,以便能够绕过DNS解析来直接访问目标服务器。在Kubernetes中, PodSpec
段落提供了 HostAliases
字段完成配置:
apiVersion: v1
kind: Pod
metadata:
name: hostaliases-pod
spec:
restartPolicy: Never
hostAliases:
- ip: "192.168.1.101"
hostnames:
- "apiserver"
- "apiserver.z-k8s.svc.cloud-atlas.io"
- ip: "192.168.1.102"
hostnames:
- "repo"
- "repo.z-k8s.svc.cloud-atlas.io"
containers:
- name: cat-hosts
image: busybox:1.28
command:
- cat
args:
- "/etc/hosts"
测试:
kubectl apply -f hostalias.yaml
检查:
kubectl get pod --output=wide
输出可以看到运行的pod:
# 待续
查看日志:
kubectl logs hostaliases-pod
日志结果(就是
cat /etc/hosts
的输出内容验证):
# 待续