我像这样创建了EKS集群https://learn.hashicorp.com/terraform/aws/eks-intro 我使用 Amazon Linux 7(默认 ami-0ee5ca4231511cafc)在文件 /etc/resolv.conf 内部署 POD 后,就像在节点上一样。在节点上:
options timeout:2 attempts:5
; generated by /usr/sbin/dhclient-script
search mysite.com
nameserver 10.200.64.2
在 POD 中:
nameserver 10.200.64.2
search mysite.com
options timeout:2 attempts:5
Kubelet 参数:
/usr/bin/kubelet --cloud-provider aws --config /etc/kubernetes/kubelet/kubelet-config.json --allow-privileged=true --kubeconfig /var/lib/kubelet/kubeconfig --container-runtime docker --network-plugin cni --node-ip=10.200.69.73 --pod-infra-container-image=602401**.dkr.ecr.eu-central-1.amazonaws.com/eks/pause-amd64:3.1 --node-labels=env=prod --cluster_dns=172.20.0.10 --cluster-domain=cluster.local
我想在 POD 内部制作 resolv.conf
nameserver 172.20.0.10
search cp-394211.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
你能帮我解决这些问题吗
答案1
这关联官方Kubernetes
文档应该可以回答你的问题。
你的 pod 定义可能看起来像这样:
apiVersion: v1
kind: Pod
metadata:
namespace: default
name: dns-example
spec:
containers:
- name: test
image: your-image
dnsPolicy: "None"
dnsConfig:
nameservers:
- 172.20.0.10
searches:
- cp-394211.svc.cluster.local
- svc.cluster.local
- cluster.local
options:
- name: ndots
value: "5"
您还可以在部署定义中将类似的配置应用于 pod 模板规范。部署中的所有 pod 都将具有相同的 DNS 配置/etc/resolv.conf
。它可能看起来像这样:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
dnsPolicy: "None"
dnsConfig:
nameservers:
- 172.20.0.10
searches:
- cp-394211.svc.cluster.local
- svc.cluster.local
- cluster.local
options:
- name: ndots
value: "5"