因为要用到gcr的镜像,所以给docker配置http代理
创建/etc/systemd/system/docker.service.d/http-proxy.conf文件:(需要自己有vpn,如影梭之类的)
[Service]
Environment="HTTP_PROXY=http://[proxy-addr]:[proxy-port]/" "HTTPS_PROXY=http://[proxy-addr]:[proxy-port]/"
systemctl daemon-reload
systemctl restart docker
使用这个yml进行dns rc的创建,这个文件创建一个rc和一个pod,其中有4个容器。文件大部分内容不需要进行任何修改,只需修改72行master中apiserver的url。
使用这个yml进行dns svc的创建,这个文件大部分内容也不需要修改,只需要修改13行,该svc在集群中的IP要定死,注意该IP需要在你的k8s集群分配的IP池中,如果不知道自己IP池是多少可以查看/etc/kubernetes/apiserver
。
先不要急于创建上述资源,而是修改/etc/kubernetes/kubelet
这个配置文件中的最后一项,其中--cluster_dns指向刚才yml文件中定好的IP
...
KUBELET_ARGS="--cluster_dns=10.254.0.100 --cluster_domain=cluster.local"
重启kubelet服务
systemctl restart kubelet
kubectl create -f skydns.yml
kubectl create -f skydns-svc.yml
创建deployment和svc
kubectl run test --image sunwu51/node --port 1880
kubectl expose deployment test --target-port 1880
进入pod后,运行ping和curl
kubectl exec -it xxxxxx bash
ping test //没有响应
curl test:1880//有结果
说明映射成功,ping没有结果的原因之前有讲过