Kubernetes 1.16クラスタをkubeadmでインストールする


kubeadmはKubernetes公式に提供されているKubernetesクラスタを迅速にインストールするためのツールで、Kubernetesの各バージョンのリリースに伴って同期的に更新され、kubeadmはクラスタ構成のいくつかの実践を調整し、実験kubeadmを通じてKubernetes公式のクラスタ構成におけるいくつかの新しいベストプラクティスを学ぶことができます.
オペレーティングシステムUbuntu 16.04+、Debian 9、CentOS 7、RHEL 7、Fedora 25/26(best-effort)、その他のメモリ2 GB+、2コアCPU+クラスタノード間で各ノードの一意のホスト名、MACアドレス、product_uuidチェックMACアドレス:ip linkまたはifconfig-aを使用してproduct_をチェックuuid:cat/sys/class/dmi/id/product_uuidはswapパーティションを禁止します.クbeletを正常に動作させるには
の準備を
1.1システム構成
ホスト名とIP対応関係:
[root@k8s-master ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.201 k8s-master
192.168.1.202 k8s-node1
192.168.1.203 k8s-node2

各ホストがファイアウォールを有効にしている場合、Kubernetesの各コンポーネントに必要なポートを開く必要がある場合は、Installing kubeadmの「Check required ports」のセクションを参照してください.ここでは簡単に、各ノードでファイアウォールを無効にします.
systemctl stop firewalld
systemctl disable firewalld

SELINUX:sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
または
vi /etc/selinux/config
SELINUX=disabled

swapを閉じる:
swapoff -a  #   
vim /etc/fstab  #   

同期時間:
yum install ntpdate -y
ntpdate  ntp.api.bz

/etc/sysctl.d/k 8 s.confファイルを作成し、次の内容を追加します.
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

コマンドを実行して変更を有効にします.
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

1.2 kube-proxyオープンipvsの前置条件
ipvsはすでにカーネルのメインに組み込まれているため、kube-proxyのipvsを開くには、以下のカーネルモジュールをロードし、すべてのKubernetesノードnode 1とnode 2で以下のスクリプトを実行する必要があります.
cat > /etc/sysconfig/modules/ipvs.modules <

上のスクリプトで作成した/etc/sysconfig/modules/ipvs.modulesファイルは、ノードの再起動後に必要なモジュールを自動的にロードできることを保証します.lsmod|grep-e ip_を使用vs -e nf_conntrack_ipv 4コマンドは、必要なカーネルモジュールが正しくロードされているかどうかを確認します.
次に、各ノードにipsetパッケージyum install ipsetがインストールされていることを確認する必要があります.ipvsのエージェントルールを表示しやすいように、管理ツールipvsadm yum install ipvsadmをインストールしたほうがいいです.以上の前提条件が満たさなければ、kube-proxyの構成がipvsモードを開いても、iptablesモードに戻ります.
1.3 Dockerのインストール
Kubernetesは1.6からCRI(Container Runtime Interface)コンテナランタイムインタフェースを使用します.デフォルトのコンテナの実行時はDockerのままで、kubeletにdockershim CRIを内蔵して実装されています.
dockerのyumソースをインストールするには:
yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

最新のDockerバージョンを表示:
yum list docker-ce.x86_64  --showduplicates |sort -r

[root@go-docker ~]# yum list docker-ce.x86_64  --showduplicates |sort -r
 * updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
 * extras: mirrors.aliyun.com
docker-ce.x86_64            3:19.03.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:19.03.0-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.9-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.8-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.7-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.6-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.5-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.4-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.3-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.2-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64            3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64            18.06.3.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.2.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.06.0.ce-3.el7                    docker-ce-stable
docker-ce.x86_64            18.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.12.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.09.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.06.0.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.3.ce-1.el7                    docker-ce-stable
docker-ce.x86_64            17.03.2.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.1.ce-1.el7.centos             docker-ce-stable
docker-ce.x86_64            17.03.0.ce-1.el7.centos             docker-ce-stable
 * base: mirrors.aliyun.com
Available Packages

Kubernetes 1.16で現在サポートされているdockerバージョンのリストは1.13.1,17.03,17.06,17.09,18.06,18.09です.ここでは、各ノードにdockerの18.09.7バージョンをインストールします.
yum makecache fast

yum install -y --setopt=obsoletes=0 \  docker-ce-18.09.7-3.el7 

systemctl start docker

systemctl enable docker

iptables filterテーブルのFOWARDチェーンのデフォルトポリシー(plicy)がACCEPTであることを確認します.
iptables -nvL

[root@k8s-master ~]# iptables -nvL
Chain INPUT (policy ACCEPT 20 packets, 2866 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  docker0 docker0  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 19 packets, 2789 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      docker0  0.0.0.0/0            0.0.0.0/0           
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-USER (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0 

1.4 docker cgroup driverをsystemdに変更する
文書CRI installationの内容によれば、systemdをinit systemとして使用するLinuxのリリース版において、systemdをdockerとして使用するcgroup driverは、サーバノードがリソースの緊張状態でより安定していることを確保することができるため、ここでは各ノード上のdockerのcgroup driverをsystemdとして修正する./etc/docker/daemon.jsonの作成または変更:
vim   /etc/docker/daemon.json

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

dockerを再起動するには:
systemctl restart docker

docker info | grep Cgroup
Cgroup Driver: systemd

2.クbeadmを使用してKubernetesを配備
kubeadm:クラスタを起動するコマンドkubelet:クラスタ内でタスクを実行するエージェントkubectl:コマンドライン管理ツール
国内のネットワークの問題のため、一部のミラーウェアハウスはダウンロードできません.手動でダウンロードする方法を使うと言っています.
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.16.4
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.16.4 k8s.gcr.io/kube-apiserver:v1.16.4
docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.16.4

docker pull  registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.4
docker tag   registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.4   k8s.gcr.io/kube-controller-manager:v1.16.4
docker rmi   registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.4  

docker pull  registry.aliyuncs.com/google_containers/kube-scheduler:v1.16.4
docker tag   registry.aliyuncs.com/google_containers/kube-scheduler:v1.16.4   k8s.gcr.io/kube-scheduler:v1.16.4
docker rmi   registry.aliyuncs.com/google_containers/kube-scheduler:v1.16.4  

#    master   node       
docker pull  registry.aliyuncs.com/google_containers/kube-proxy:v1.16.4 
docker tag   registry.aliyuncs.com/google_containers/kube-proxy:v1.16.4   k8s.gcr.io/kube-proxy:v1.16.4
docker rmi   registry.aliyuncs.com/google_containers/kube-proxy:v1.16.4  

#   master   node     
docker pull  registry.aliyuncs.com/google_containers/pause:3.1
docker tag registry.aliyuncs.com/google_containers/pause:3.1  k8s.gcr.io/pause:3.1
docker rmi registry.aliyuncs.com/google_containers/pause:3.1

docker pull  registry.aliyuncs.com/google_containers/coredns:1.6.2    
docker tag   registry.aliyuncs.com/google_containers/coredns:1.6.2       k8s.gcr.io/coredns:1.6.2
docker rmi   registry.aliyuncs.com/google_containers/coredns:1.6.2      

docker pull  registry.aliyuncs.com/google_containers/etcd:3.3.15-0    
docker tag   registry.aliyuncs.com/google_containers/etcd:3.3.15-0       k8s.gcr.io/etcd:3.3.15-0
docker rmi   registry.aliyuncs.com/google_containers/etcd:3.3.15-0 

docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
docker tag quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64
docker rmi quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1 
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1 gcr.io/kubernetes-helm/tiller:v2.14.1
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1

docker pull  registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
docker rmi  registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5 k8s.gcr.io/metrics-server-amd64:v0.3.5
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5

公式Kubernetes YUMソフトウェアソース
cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

あるいはアリクラウドのKubernetes YUMソフトウェアソースを追加します
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

インストールコマンドを実行します.
yum makecache fast

yum install -y kubelet-1.16.4 kubeadm-1.16.4 kubectl-1.16.4

インストールの結果、cri-tools、kubernetes-cni、socatの3つの依存もインストールされていることがわかります.Kubernetes 1.14から0.7.5バージョンにcni依存をアップグレードしました.socatはkubeletの依存cri-toolsはCRI(Container Runtime Interface)です.コンテナランタイムインタフェースのコマンドラインツールkubelet–helpを実行すると、元のkubeletのほとんどのコマンドラインflagパラメータがDEPRECATEDによって表示されます.たとえば、--address 0.0.0.0 The IP address for the Kubelet to serve on (set to 0.0.0.0 for all IPv4 interfaces and::for all IPv6 interfaces) (default 0.0.0.0) (DEPRECATED: This parameter should be set via the config file specified by the Kubelet's --config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.)で、–configを使用してプロファイルを指定し、プロファイルで元のflagが構成されている内容を指定することを推奨します.詳細については、ここでSet Kubelet parameters via config fileを参照してください.これもKubernetesがダイナミックKubelet構成(Dynamic Kubelet Configuration)をサポートするために行ったもので、Reconfigure a Node’s Kubelet in a Live Clusterを参照してください.kubeletのプロファイルはjsonまたはyaml形式でなければなりません.詳細はこちらを参照してください.Kubernetes 1.8はシステムのSwapを閉じることを要求し始め、閉じなければデフォルトの構成ではkubeletは起動できません.システムをシャットダウンするSwapの方法は以下の通りです.swapoff -a
すべてのノード/etc/fstabファイルを変更し、SWAPの自動マウントを注記し、free-mを使用してswapが閉じていることを確認します.swappinessパラメータ調整、修正/etc/sysctl.d/k 8 s.conf次の行を追加します.vm.swappiness=0
次のコマンドを実行します.sysctl -p /etc/sysctl.d/k8s.conf
変更を有効にします.
各ノードの電源を入れてクbeletサービスを開始します.systemctl enable kubelet.service systemctl daemon-reload && systemctl restart kubelet
2.1 kubeadm initを使用してクラスタを初期化する
マスターを初期化する前に、変更/etc/sysconfig/kubeletの内容が次のとおりであることを確認します.KUBELET_EXTRA_ARGS=--fail-swap-on=false
masterノード実行コマンド:
kubeadm init \
--apiserver-advertise-address=192.168.1.201 \
--kubernetes-version v1.16.4 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all

または
kubeadm init \
--apiserver-advertise-address=192.168.1.201 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.16.4 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

実行結果の主な内容は次のとおりです.
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.1.201:6443 --token v5pya1.dly1k110o9oxolo7 \
    --discovery-token-ca-cert-hash sha256:8d411433bb08ba29267226a3f80f66f74fa86562f8daf38a3af57e6330b87fc1 

次のコマンドを実行します.
 mkdir -p $HOME/.kube
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 sudo chown $(id -u):$(id -g) $HOME/.kube/config

最後に与えられたコマンドは、他のノードでクラスタへの参加を実行します:
kubeadm join 192.168.1.201:6443 --token v5pya1.dly1k110o9oxolo7 \
--discovery-token-ca-cert-hash sha256:8d411433bb08ba29267226a3f80f66f74fa86562f8daf38a3af57e6330b87fc1
クラスタのステータスを確認し、コンポーネントがhealthy状態であることを確認します.
kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok                  
scheduler            Healthy   ok                  
etcd-0               Healthy   {"health":"true"}

2.2 Pod Networkのインストール
次のコマンドを実行します.
kdir -p ~/k8s/
cd ~/k8s
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f  kube-flannel.yml

コマンドの結果:
[root@k8s-master k8s]# kubectl apply -f  kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds-amd64 created
daemonset.apps/kube-flannel-ds-arm64 created
daemonset.apps/kube-flannel-ds-arm created
daemonset.apps/kube-flannel-ds-ppc64le created
daemonset.apps/kube-flannel-ds-s390x created

[ここで注意kube-flannel.ymlこのファイルのflannelのミラーリングは0.11.0で、quay.io/coreos/flannel:v 0.11.0-amd 64リンクの説明を追加してください]()
ミラーの引き抜きに失敗した場合は、nodeごとに手動で引き抜きます.
docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64
docker tag quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64
docker rmi quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64

kubernetes-dashboardのインストール
まずyamlファイルをダウンロードして、中のミラーアドレスとService NodePortタイプを変更します:wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml kubernetes-dashboard関連ミラーをダウンロードします:
docker pull  kubernetesui/dashboard:v2.0.0-beta8
docker pull  kubernetesui/metrics-scraper:v1.0.2

kubernetes-dashboard.yamlファイルの変更:Deploymentミラーの引き抜き方法の変更:imagePullPolicy:IfNotPresentサービスの変更:(yamlファイルでtabキーの使用がサポートされていないため注意)
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      NodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard
"recommended.yaml" 289L, 7104C written

kubernetes-dashboard.yamlの適用kubectl apply -f recommended.yaml
適用効果は次のとおりです.
[root@k8s-master k8s]# kubectl apply -f recommended.yaml
namespace/kubernetes-dashboard unchanged
serviceaccount/kubernetes-dashboard unchanged
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

saを作成し、デフォルトのcluster-admin管理者クラスタロールをバインドします.
kubectl create serviceaccount dashboard-admin -n  kubernetes-dashboard

kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin

kubernetes-dashboardにログイン:
kubectl get secret -n kubernetes-dashboard
kubectl describe secret dashboard-admin-token-bwdjj  -n kubernetes-dashboard

注意:kubernetes-dashboardコマンドの表示:kubectl --namespace=kubernetes-dashboard get service kubernetes-dashboardGoogleブラウザがkubernetes dashboardを開くことができない方法を解決しますmkdir key && cd key証明書の生成
openssl genrsa -out dashboard.key 2048
openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=192.168.246.200'
openssl x509 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt

既存の証明書を削除secret kubectl delete secret kubernetes-dashboard-certs -n kubernetes-dashboard新しい証明書を作成secret kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard pod kubectl get pod -n kubernetes-dashboard再起動pod kubectl delete pod <pod name> -n kubernetes-dashboard pad nameがkubernetes-dashboardの名前であることを確認)
kubernetes-dashboardの削除
kubectl get secret,sa,role,rolebinding,services,deployments --namespace=kube-system | grep dashboard

kubectl delete deployment kubernetes-dashboard --namespace=kube-system 
kubectl delete service kubernetes-dashboard  --namespace=kube-system 
kubectl delete role kubernetes-dashboard-minimal --namespace=kube-system 
kubectl delete rolebinding kubernetes-dashboard-minimal --namespace=kube-system
kubectl delete sa kubernetes-dashboard --namespace=kube-system 
kubectl delete secret kubernetes-dashboard-certs --namespace=kube-system
kubectl delete secret kubernetes-dashboard-key-holder --namespace=kube-system

kubernetes-dashboardにログインし、上記のアカウントを作成したtokenを使用してKubernetes Dashboardにログインします.
kubectl get secret -n kube-system
kubectl describe secret dashboard-admin-token-bwdjj  -n kube-system

Kubernetesクラスタmetrics-serverのインストール
gitから最新metrics-serviceコードをダウンロード:wget https://github.com/kubernetes-incubator/metrics-server/archive/v0.3.5.tar.gz解凍:tar zxvf v0.3.5.tar.gz deploy/1.8+/metrics-server-deployment.yamlを変更します.追加位置と内容は以下の通り:deployment.spec.template.spec.containers[0].command
command:
        - /metrics-server
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname

deploy/1.8+/metrics-server-deployment.yamlのimageバージョンをv 0.3.5に変更する前:k8s.gcr.io/metrics-server-amd64:v0.3.5
imagePullPolicy: Always
変更後:k8s.gcr.io/metrics-server-amd64:v0.3.5
imagePullPolicy: IfNotPresent
metrics-serverをインストールします.kubectl apply -f metrics-server-0.3.3/deploy/1.8+/確認:kubectl top po -n kube-system
[root@k8s-master k8s]# kubectl top pod -n kube-system
NAME                                 CPU(cores)   MEMORY(bytes)   
coredns-5644d7b6d9-459zs             2m           10Mi            
coredns-5644d7b6d9-v4xlt             2m           10Mi            
etcd-k8s-master                      6m           48Mi            
kube-apiserver-k8s-master            41m          429Mi           
kube-controller-manager-k8s-master   6m           68Mi            
kube-flannel-ds-amd64-fkpph          1m           12Mi            
kube-flannel-ds-amd64-m45n8          1m           11Mi            
kube-flannel-ds-amd64-qjqzd          1m           9Mi             
kube-proxy-7xhhs                     1m           20Mi            
kube-proxy-dvqbj                     1m           13Mi            
kube-proxy-xs9lm                     2m           13Mi            
kube-scheduler-k8s-master            2m           24Mi            
metrics-server-6946b8b5b5-52fb8      6m           11Mi