kubernetes:kubedns安装

来源:互联网 发布:1099端口被占用 编辑:程序博客网 时间:2024/06/07 09:34

  • kubedns-cmyaml和kubedns-sayaml
  • kubedns-svcyaml
  • kubedns-controlleryaml
  • 启动kubedns服务
  • 验证

下载kubernetes安装包
https://github.com/kubernetes/kubernetes/releases/download/v1.6.7/kubernetes.tar.gz,
在kubernetes/cluster/addons/dns目录下有kubedns的安装脚本。

本文的脚步在已上传到github:
https://github.com/zhuchuangang/k8s-install-scripts/tree/master/yaml/kubedns

1.kubedns-cm.yaml和kubedns-sa.yaml

kubedns-cm.yaml和kubedns-sa.yaml不需要进行修改,直接使用。

2.kubedns-svc.yaml

kubedns-svc.yaml有三种类型的模板文件,我们使用kubedns-svc.yaml.sed文件来生成kubedns-svc.yaml文件,替换$DNS_SERVER_IP为指定IP,我们这里使用10.0.0.10。

cp kubedns-svc.yaml.sed kubedns-svc.yamlsed -i 's/$DNS_SERVER_IP/10.0.0.10/g' kubedns-svc.yaml

3.kubedns-controller.yaml

kubedns-controller.yaml有三种类型的模板文件,我们使用kubedns-controller.yaml.sed文件来生成kubedns-controller.yaml文件,替换$DNS_DOMAIN为cluster.local.。

cp kubedns-controller.yaml.sed kubedns-controller.yamlsed -i 's/$DNS_DOMAIN/cluster.local./g' kubedns-controller.yaml

由于gcr.io进行下载问题,对kubedns-controller.yaml使用的docker镜像进行了替换,
- gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.4镜像改为hub.c.163.com/k8s163/k8s-dns-kube-dns-amd64:1.14.1
- gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.4镜像改为hub.c.163.com/k8s163/k8s-dns-dnsmasq-nanny-amd64:1.14.1
- gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.4镜像改为hub.c.163.com/k8s163/k8s-dns-sidecar-amd64:1.14.1

4.启动kubedns服务

kubectl create -f kubedns-cm.yamlkubectl create -f kubedns-sa.yamlkubectl create -f kubedns-svc.yamlkubectl create -f kubedns-controller.yaml

注意:需要配置kubelet的启动参数–cluster-dns=10.0.0.10 –cluster-domain=cluster.local

5.验证

创建pod,pod-busybox.yaml

apiVersion: v1kind: Podmetadata:  name: busybox  namespace: defaultspec:  containers:  - image: busybox    command:      - sleep      - "3600"    imagePullPolicy: IfNotPresent    name: busybox  restartPolicy: Always

登录busybox容器内部

kubectl exec -it busybox -- /bin/sh

输入命令认证

nslookup kubernetes

输出结果为:

Server:    10.0.0.10Address 1: 10.0.0.10 kube-dns.kube-system.svc.cluster.localName:      kubernetesAddress 1: 10.0.0.1 kubernetes.default.svc.cluster.local