kubernetesでのDNSのインストール導入テスト
[toc]
DNSのインストール後、podはdnsによってサービスを解析し、通信を実現することができる.
kubernetesバージョン:
現在のバージョンは1.9.0です
1、kubectl dnsの取り付け
1.1公式サイトでプロファイルをダウンロードする
ここでは、kube-dns.yaml.sedプロファイルをテンプレートとして使用します.
1.2 2つの属性を変更する必要がある $DNS_SERVER_IPはk 8 s dnsのipを指定し、デフォルトはapiserver ip である. $DNS_DOMAIN、cluster.local(kube-apiserver定義と一致) に置き換えます.
1.3具体的にコマンドを修正し、sedコマンドを使用することができる
kube-dns.yaml.sedプロファイルをk 8 sクラスタがあるサーバにコピープロファイルの名前変更 move kube-dns.yaml.sed kube-dns.yaml
属性の一括変更 sed -i 's/$DNS_SERVER_IP/10.10.10.2/g' kube-dns.yaml sed -i 's/$DNS_DOMAIN/cluster.local/g' kube-dns.yaml
1.4 dnsサービスの開始
2 dnsサービスのテスト
2.1 podとサービスの作成
プロファイルcurl.yaml
2.2 dnsテストツールpodの作成
2.3先ほど作成したテストpod,tools-dnsを確認する
2.4コンテナに入ったら、次のコマンドを使用してクエリーを行います. Aレコードを表示する(アドレスレコードIPv 4) nslookup -query=a _http._tcp.curl.kube-system
srvレコード(ドメイン名システム(DNS)リソースレコードを表示し、特定のサービスを担持するコンピュータを識別する) nslookup -query=srv _http._tcp.curl.kube-system(説明:service=10(優先度)100(比重)80(ポート)curl.kube-system.svc.cluster.local(ホスト名).
2.5テストで発見された問題:
参考文献:https://blog.csdn.net/kozazyh/article/details/79443852
DNSのインストール後、podはdnsによってサービスを解析し、通信を実現することができる.
kubernetesバージョン:
kubectl version
現在のバージョンは1.9.0です
1、kubectl dnsの取り付け
1.1公式サイトでプロファイルをダウンロードする
https://github.com/kubernetes/kubernetes
cluster/addons/dns/kube-dns
,
:
kube-dns.yaml.base
kube-dns.yaml.in
kube-dns.yaml.sed
ここでは、kube-dns.yaml.sedプロファイルをテンプレートとして使用します.
1.2 2つの属性を変更する必要がある
1.3具体的にコマンドを修正し、sedコマンドを使用することができる
kube-dns.yaml.sedプロファイルをk 8 sクラスタがあるサーバにコピー
1.4 dnsサービスの開始
kubectl create -f kube-dns.yaml
2 dnsサービスのテスト
2.1 podとサービスの作成
プロファイルcurl.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: curl
namespace: kube-system
spec:
replicas: 1
template:
metadata:
labels:
app: curl
spec:
containers:
- name: curl
image: appropriate/curl
command: ["sleep"]
args: ["5000"]
---
apiVersion: v1
kind: Service
metadata:
name: curl
namespace: kube-system
labels:
app: curl
spec:
type: ClusterIP
selector:
app: curl
ports:
- port: 80
targetPort: 80
name: http
protocol: TCP
2.2 dnsテストツールpodの作成
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tools-dns
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
app: tools-dns
spec:
containers:
- name: tools-dns
image: tutum/dnsutils:latest
command: ["sleep"]
args: ["5000"]
2.3先ほど作成したテストpod,tools-dnsを確認する
kubectl get pod
2.4コンテナに入ったら、次のコマンドを使用してクエリーを行います.
kubectl exec -it tools-dns-5665d49688-8jrnw /bin/bash
2.5テストで発見された問題:
1、 , ,
“k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.10” “ index.tenxcloud.com/jimmy/k8s-dns-dnsmasq-nanny-amd64:1.14.1”
"k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.10" "index.tenxcloud.com/jimmy/k8s-dns-sidecar-amd64:1.14.1"
" k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.10" "index.tenxcloud.com/jimmy/k8s-dns-kube-dns-amd64:1.14.1
2、 "Liveness probe failed: Get http://172.17.97.2:10054/healthcheck/kubedns: dial tcp 172.17.97.2:10054: getsockopt: connection refused" , "SRV" "A"
参考文献:https://blog.csdn.net/kozazyh/article/details/79443852