五、DashboardとCoreDNSの配置

4489 ワード

文書ディレクトリ

  • 1、coredns
  • の導入
  • 1.1 Dashboardのyamlファイルをダウンロード
  • 1.2 Dashboardサービス
  • の導入
  • 1.3サービスaccountを作成し、デフォルトcluster-admin管理者クラスタロール
  • をバインド
  • 2、CoreDNS
  • の配備
  • 2.1 CoreDNSのyamlファイル
  • を生成する
  • 2.2 corednsサービス
  • の導入
  • corednsサービスが
  • を正常に作成したかどうかを確認します.
  • 2.3 DNS解析試験
  • 1、corednsの配備


    1.1 Dashboardのyamlファイルのダウンロード

    wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
    

    デフォルトのDashboardでは、クラスタ内でしかアクセスできません.サービスをNodePortタイプに変更し、外部に露出します.
    vim recommended.yaml
    kind: Service
    apiVersion: v1
    metadata:
      labels:
        k8s-app: kubernetes-dashboard
      name: kubernetes-dashboard
      namespace: kubernetes-dashboard
    spec:
      ports:
       - port: 443
         targetPort: 8443
         nodePort: 30001
      type: NodePort
      selector:
        k8s-app: kubernetes-dashboard
    

    1.2 Dashboardサービスの導入

    # kubectl apply -f recommended.yaml
    
    # kubectl get pods,svc -n kubernetes-dashboard
    NAME                                             READY   STATUS    RESTARTS   AGE
    pod/dashboard-metrics-scraper-694557449d-pzjvv   1/1     Running   0          20s
    pod/kubernetes-dashboard-9774cc786-8mprh         1/1     Running   0          20s
    
    NAME                                TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
    service/dashboard-metrics-scraper   ClusterIP   10.0.0.230   <none>        8000/TCP        20s
    service/kubernetes-dashboard        NodePort    10.0.0.24    <none>        443:30001/TCP   20s
    

    アクセス先:https://NodeIP:30001

    1.3サービスaccountを作成し、デフォルトのcluster-admin管理者クラスタロールをバインドする

    # kubectl create serviceaccount dashboard-admin -n kube-system
    
    
    # kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
    
    
    # kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
    
    

    出力のtokenを使用してDashboardにログインします.

    2、CoreDNSの配備


    2.1 CoreDNSはクラスタ内のサービス名解析に使用されます.

    2.1 CoreDNSのyamlファイルの生成

    mkdir /opt/tools/coredns &&  cd /opt/tools/coredns/
     
    wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/coredns.yaml.sed
    wget https://raw.githubusercontent.com/coredns/deployment/master/kubernetes/deploy.sh
    chmod +x deploy.sh
    
    ./deploy.sh -i 10.0.0.2 > coredns.yml
    
     :10.0.0.2 k8s pod IP
    

    注意:CoreDNSのyamlファイルを生成するにはjqコマンドが必要です
    CentOS7  jq
    
    # EPEL :
    yum install epel-release
    
    # jq:
    yum install jq
    

    2.2 corednsサービスの導入

    kubectl apply -f coredns.yml 
    

    corednsサービスが正常に作成されたかどうかを確認します

    # kubectl get pods -n kube-system 
    NAME                          READY   STATUS    RESTARTS   AGE
    coredns-6fdfb45d56-qv8hl      1/1     Running   0          2m7s
    kube-flannel-ds-amd64-bnbrf   1/1     Running   3          43h
    kube-flannel-ds-amd64-mtn2f   1/1     Running   2          44h
    

    2.3 DNS解析テスト

    # kubectl run -it --rm dns-test --image=busybox:1.28.4 sh
    If you don't see a command prompt, try pressing enter.
    / # nslookup kubernetes
    Server:    10.0.0.2
    Address 1: 10.0.0.2 kube-dns.kube-system.svc.cluster.local
    
    Name:      kubernetes
    Address 1: 10.0.0.1 kubernetes.default.svc.cluster.local
    

    解析は大丈夫です.