1. 直接从Docker中拉取skydns,kube2dns,etcd容器,放到一个Pod中
- kube2sky:1.14
- etcd:2.0.9
- skydns-amd64
2. 创建RC
apiVersion: v1
kind: ReplicationController
metadata:
name: kube-dns-v6
namespace: default
labels:
k8s-app: kube-dns
version: v6
kubernetes.io/cluster-service: "true"
spec:
replicas:
selector:
k8s-app: kube-dns
version: v6
template:
metadata:
labels:
k8s-app: kube-dns
version: v6
kubernetes.io/cluster-service: "true"
spec:
containers:
- name: etcd
image: 109.105.46.94:/dns/etcd:2.0.
command:
- /usr/local/bin/etcd
- -listen-client-urls
- http://0.0.0.0:2379,http://0.0.0.0:4001
- -advertise-client-urls
- http://127.0.0.1:2379,http://127.0.0.1:4001
- -initial-cluster-token
- skydns-etcd
- name: kube2sky
#image: 109.105.46.94:/dns/kube2sky:1.11
image: 109.105.46.94:/dns/kube2sky:1.14
resources:
limits:
cpu: 100m
memory: 50Mi
command:
- /kube2sky
# - -kube_master_url=http://109.105.46.94:8080
# - -domain=cluster.local
- --kube-master-url=http://109.105.46.94:8080
- --domain=cluster.local
- name: skydns
image: 109.105.46.94:/dns/skydns-amd64
resources:
command:
- /skydns
- -machines=http://localhost:4001
- -addr=0.0.0.0:
- -domain=cluster.local.
ports:
- containerPort:
name: dns
protocol: UDP
- containerPort:
name: dns-tcp
protocol: TCP
dnsPolicy: Default
3.创建SVC
apiVersion: v1
kind: Service
metadata:
name: kube-dns
namespace: default
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
kubernetes.io/name: "KubeDNS"
spec:
selector:
k8s-app: kube-dns
clusterIP: 192.168.3.100
ports:
- name: dns
port:
protocol: UDP
- name: dns-tcp
port:
protocol: TCP
4. 启动dns:
kubectl create -f skydns-etcd-rc.yaml
kubectl create -f skydns-etcd-svc.yaml
5.修改各node节点上的/etc/kubernetes/kubelet.service配置文件,增加启动参数:
--cluster-dns=192.168.3.100 \
--cluster-domain=cluster.local \
6.重启各节点:
systemctl daemon-reload
systemctl restart kubelet