千家信息网

使用kubeadm安装Kubernetes 1.15

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验k
千家信息网最后更新 2026年11月01日使用kubeadm安装Kubernetes 1.15

kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kubernetes官方在集群配置上一些新的最佳实践。

1.准备

1.1系统配置

[root@k8s-master ~]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.0.246 k8s-master192.168.0.247 k8s-node1192.168.0.248 k8s-node2

如果各个主机启用了防火墙,需要开放Kubernetes各个组件所需要的端口,可以查看Installing kubeadm中的"Check required ports"一节。 这里简单起见在各节点禁用防火墙:

systemctl stop firewalldsystemctl disable firewalld

禁用SELINUX:

setenforce 0

vi /etc/selinux/configSELINUX=disabled

创建/etc/sysctl.d/k8s.conf文件,添加如下内容:

net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1

执行命令使修改生效。

modprobe br_netfilter

sysctl -p /etc/sysctl.d/k8s.conf

1.2kube-proxy开启ipvs的前置条件

由于ipvs已经加入到了内核的主干,所以为kube-proxy开启ipvs的前提需要加载以下的内核模块:

ip_vsip_vs_rrip_vs_wrrip_vs_shnf_conntrack_ipv4

在所有的Kubernetes节点node1和node2上执行以下脚本:

cat > /etc/sysconfig/modules/ipvs.modules <

chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

上面脚本创建了的/etc/sysconfig/modules/ipvs.modules文件,保证在节点重启后能自动加载所需模块。 使用lsmod | grep -e ip_vs -e nf_conntrack_ipv4命令查看是否已经正确加载所需的内核模块。

接下来还需要确保各个节点上已经安装了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 lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看最新的Docker版本:

yum list docker-ce.x86_64  --showduplicates |sort -rdocker-ce.x86_64            3:18.09.7-3.el7                     docker-ce-stabledocker-ce.x86_64            3:18.09.6-3.el7                     docker-ce-stabledocker-ce.x86_64            3:18.09.5-3.el7                     docker-ce-stabledocker-ce.x86_64            3:18.09.4-3.el7                     docker-ce-stabledocker-ce.x86_64            3:18.09.3-3.el7                     docker-ce-stabledocker-ce.x86_64            3:18.09.2-3.el7                     docker-ce-stabledocker-ce.x86_64            3:18.09.1-3.el7                     docker-ce-stabledocker-ce.x86_64            3:18.09.0-3.el7                     docker-ce-stabledocker-ce.x86_64            18.06.3.ce-3.el7                    docker-ce-stabledocker-ce.x86_64            18.06.2.ce-3.el7                    docker-ce-stabledocker-ce.x86_64            18.06.1.ce-3.el7                    docker-ce-stabledocker-ce.x86_64            18.06.0.ce-3.el7                    docker-ce-stabledocker-ce.x86_64            18.03.1.ce-1.el7.centos             docker-ce-stabledocker-ce.x86_64            18.03.0.ce-1.el7.centos             docker-ce-stable

Kubernetes 1.15当前支持的docker版本列表是1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09。 这里在各节点安装docker的18.09.7版本。

yum makecache fastyum install -y --setopt=obsoletes=0 \  docker-ce-18.09.7-3.el7 systemctl start dockersystemctl enable docker

确认一下iptables filter表中FOWARD链的默认策略(pllicy)为ACCEPT。

iptables -nvLChain INPUT (policy ACCEPT 263 packets, 19209 bytes) pkts bytes target     prot opt in     out     source               destinationChain 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

1.4 修改docker cgroup driver为systemd
根据文档CRI installation中的内容,对于使用systemd作为init system的Linux的发行版,使用systemd作为docker的cgroup driver可以确保服务器节点在资源紧张的情况更加稳定,因此这里修改各个节点上docker的cgroup driver为systemd。

创建或修改/etc/docker/daemon.json:

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

重启docker:

systemctl restart docker

docker info | grep CgroupCgroup Driver: systemd

2.使用kubeadm部署Kubernetes

2.1 安装kubeadm和kubelet
下面在各节点安装kubeadm和kubelet:

cat < /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF
yum makecache fastyum install -y kubelet-1.15.2 kubeadm-1.15.2 kubectl-1.15.2

...

Installed:  kubeadm.x86_64 0:1.15.0-0                  kubectl.x86_64 0:1.15.0-0                      kubelet.x86_64 0:1.15.0-0                                 Dependency Installed:  conntrack-tools.x86_64 0:1.4.4-4.el7            cri-tools.x86_64 0:1.12.0-0                   kubernetes-cni.x86_64 0:0.7.5-0     libnetfilter_cthelper.x86_64 0:1.0.0-9.el7      libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7     libnetfilter_queue.x86_64 0:1.0.2-2.el7_2

从安装结果可以看出还安装了cri-tools, kubernetes-cni, socat三个依赖:

官方从Kubernetes 1.14开始将cni依赖升级到了0.7.5版本
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 a 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/k8s.conf添加下面一行:

vm.swappiness=0
执行下面命令:

sysctl -p /etc/sysctl.d/k8s.conf

使修改生效。

2.2 使用kubeadm init初始化集群

在各节点开机启动kubelet服务:

systemctl enable kubelet.service

初始化master之前确认修改/etc/sysconfig/kubelet 中的内容为:

KUBELET_EXTRA_ARGS=--fail-swap-on=false

kubeadm init \--apiserver-advertise-address=192.168.0.246 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.13.3 \--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/configYou 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.0.246:6443 --token 4qcl2f.gtl3h8e5kjltuo0r \    --discovery-token-ca-cert-hash sha256:7ed5404175cc0bf18dbfe53f19d4a35b1e3d40c19b10924275868ebf2a3bbe6e

执行以下命令:

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

最后给出了将节点加入集群的命令:
kubeadm join 192.168.0.246:6443 -token 4qcl2f.gtl3h8e5kjltuo0r \ -discovery-token-ca-cert-hash sha256:7ed5404175cc0bf18dbfe53f19d4a35b1e3d40c19b10924275868ebf2a3bbe6e

查看一下集群状态,确认个组件都处于healthy状态:

kubectl get csNAME                 STATUS    MESSAGE             ERRORcontroller-manager   Healthy   ok                  scheduler            Healthy   ok                  etcd-0               Healthy   {"health":"true"}

2.3 安装Pod Network

接下来安装flannel network add-on:

kdir -p ~/k8s/cd ~/k8scurl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f  kube-flannel.ymlclusterrole.rbac.authorization.k8s.io/flannel createdclusterrolebinding.rbac.authorization.k8s.io/flannel createdserviceaccount/flannel createdconfigmap/kube-flannel-cfg createddaemonset.extensions/kube-flannel-ds-amd64 createddaemonset.extensions/kube-flannel-ds-arm64 createddaemonset.extensions/kube-flannel-ds-arm createddaemonset.extensions/kube-flannel-ds-ppc64le createddaemonset.extensions/kube-flannel-ds-s390x created

[这里注意kube-flannel.yml这个文件里的flannel的镜像是0.11.0,quay.io/coreos/flannel:v0.11.0-amd64请添加链接描述]()

如果镜像拉取失败请每一个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

使用kubectl get pod -all-namespaces -o wide确保所有的Pod都处于Running状态。

kubectl get pod -n kube-systemNAME                            READY   STATUS    RESTARTS   AGEcoredns-5c98db65d4-dr8lf        1/1     Running   0          52mcoredns-5c98db65d4-lp8dg        1/1     Running   0          52metcd-node1                      1/1     Running   0          51mkube-apiserver-node1            1/1     Running   0          51mkube-controller-manager-node1   1/1     Running   0          51mkube-flannel-ds-amd64-mm296     1/1     Running   0          44skube-proxy-kchkf                1/1     Running   0          52mkube-scheduler-node1            1/1     Running   0          51m

2.5 向Kubernetes集群中添加Node节点

下面将node主机添加到Kubernetes集群中,在node上执行:

kubeadm join 192.168.99.11:6443 --token 4qcl2f.gtl3h8e5kjltuo0r \    --discovery-token-ca-cert-hash sha256:7ed5404175cc0bf18dbfe53f19d4a35b1e3d40c19b10924275868ebf2a3bbe6e

加入集群很是顺利,下面在master节点上执行命令查看集群中的节点:

kubectl get nodeNAME    STATUS   ROLES    AGE   VERSIONk8s-master   Ready    master   57m   v1.15.2k8s-node1 Ready     11s          v1.15.2k8s-node2   Ready      11s   v1.15.2

2.6 kube-proxy开启ipvs

修改ConfigMap的kube-system/kube-proxy中的config.conf,mode: "ipvs"

kubectl edit cm kube-proxy -n kube-system
之后重启各个节点上的kube-proxy pod:

kubectl get pod -n kube-system | grep kube-proxy | awk '{system("kubectl delete pod "$1" -n kube-system")}'kubectl get pod -n kube-system | grep kube-proxykube-proxy-7fsrg                1/1     Running   0          3skube-proxy-k8vhm                1/1     Running   0          9s
kubectl logs kube-proxy-7fsrg  -n kube-systemI0703 04:42:33.308289       1 server_others.go:170] Using ipvs Proxier.W0703 04:42:33.309074       1 proxier.go:401] IPVS scheduler not specified, use rr by defaultI0703 04:42:33.309831       1 server.go:534] Version: v1.15.0I0703 04:42:33.320088       1 conntrack.go:52] Setting nf_conntrack_max to 131072I0703 04:42:33.320365       1 config.go:96] Starting endpoints config controllerI0703 04:42:33.320393       1 controller_utils.go:1029] Waiting for caches to sync for endpoints config controllerI0703 04:42:33.320455       1 config.go:187] Starting service config controllerI0703 04:42:33.320470       1 controller_utils.go:1029] Waiting for caches to sync for service config controllerI0703 04:42:33.420899       1 controller_utils.go:1036] Caches are synced for endpoints config controllerI0703 04:42:33.420969       1 controller_utils.go:1036] Caches are synced for service config controller

3.Kubernetes常用组件部署

越来越多的公司和团队开始使用Helm这个Kubernetes的包管理器,这里也将使用Helm安装Kubernetes的常用组件。

3.1 Helm的安装

Helm由客户端命helm令行工具和服务端tiller组成,Helm的安装十分简单。 下载helm命令行工具到master节点node1的/usr/local/bin下,这里下载的2.14.1版本:

curl -O https://get.helm.sh/helm-v2.14.1-linux-amd64.tar.gztar -zxvf helm-v2.14.1-linux-amd64.tar.gzcd linux-amd64/cp helm /usr/local/bin/

为了安装服务端tiller,还需要在这台机器上配置好kubectl工具和kubeconfig文件,确保kubectl工具可以在这台机器上访问apiserver且正常使用。 这里的master节点已经配置好了kubectl。

因为Kubernetes APIServer开启了RBAC访问控制,所以需要创建tiller使用的service account: tiller并分配合适的角色给它。 详细内容可以查看helm文档中的Role-based Access Control。 这里简单起见直接分配cluster-admin这个集群内置的ClusterRole给它。创建helm-rbac.yaml文件:

apiVersion: v1kind: ServiceAccountmetadata:  name: tiller  namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRoleBindingmetadata:  name: tillerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: cluster-adminsubjects:  - kind: ServiceAccount    name: tiller    namespace: kube-system
kubectl create -f helm-rbac.yamlserviceaccount/tiller createdclusterrolebinding.rbac.authorization.k8s.io/tiller created

接下来使用helm部署tiller:

helm init --service-account tiller --skip-refreshCreating /root/.helmCreating /root/.helm/repositoryCreating /root/.helm/repository/cacheCreating /root/.helm/repository/localCreating /root/.helm/pluginsCreating /root/.helm/startersCreating /root/.helm/cache/archiveCreating /root/.helm/repository/repositories.yamlAdding stable repo with URL: https://kubernetes-charts.storage.googleapis.comAdding local repo with URL: http://127.0.0.1:8879/charts$HELM_HOME has been configured at /root/.helm.Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.To prevent this, run `helm init` with the --tiller-tls-verify flag.For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installationHappy Helming!

tiller默认被部署在k8s集群中的kube-system这个namespace下:

kubectl get pod -n kube-system -l app=helmNAME                            READY   STATUS    RESTARTS   AGEtiller-deploy-c4fd4cd68-dwkhv   1/1     Running   0          83s
helm versionClient: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}Server: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}

如果 tiller拉取失败请在所有Node节点手动拉取镜像:

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

注意由于某些原因需要网络可以访问gcr.io和kubernetes-charts.storage.googleapis.com,如果无法访问可以通过helm init -service-account tiller -tiller-image /tiller:v2.13.1 -skip-refresh使用私有镜像仓库中的tiller镜像
示例:
helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1 --service-account=tiller --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

最后在master上修改helm chart仓库的地址为azure提供的镜像地址(阿里云地址:):

helm repo add stable http://mirror.azure.cn/kubernetes/charts"stable" has been added to your repositorieshelm repo listNAME    URL                                     stable  http://mirror.azure.cn/kubernetes/chartslocal   http://127.0.0.1:8879/charts

3.3 使用Helm部署dashboard
kubernetes-dashboard.yaml:

image:
repository: k8s.gcr.io/kubernetes-dashboard-amd64
tag: v1.10.1
ingress:
enabled: true
hosts:

  • k8s.frognew.com
    annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
    tls:
  • secretName: frognew-com-tls-secret
    hosts:
    • k8s.frognew.com
      nodeSelector:
      node-role.kubernetes.io/edge: ''
      tolerations:
  • key: node-role.kubernetes.io/master
    operator: Exists
    effect: NoSchedule
  • key: node-role.kubernetes.io/master
    operator: Exists
    effect: PreferNoSchedule
    rbac:
    clusterAdminRole: true

helm install stable/kubernetes-dashboard \
-n kubernetes-dashboard \
--namespace kube-system \
-f kubernetes-dashboard.yaml
kubectl -n kube-system get secret | grep kubernetes-dashboard-token
kubernetes-dashboard-token-pkm2s kubernetes.io/service-account-token 3 3m7s

kubectl describe -n kube-system secret/kubernetes-dashboard-token-pkm2s
Name: kubernetes-dashboard-token-pkm2s
Namespace: kube-system
Labels:
Annotations: kubernetes.io/service-account.name: kubernetes-dashboard
kubernetes.io/service-account.uid: 2f0781dd-156a-11e9-b0f0-080027bb7c43

Type: kubernetes.io/service-account-token

Data

ca.crt: 1025 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZC10b2tlbi1wa20ycyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjJmMDc4MWRkLTE1NmEtMTFlOS1iMGYwLTA4MDAyN2JiN2M0MyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.24ad6ZgZMxdydpwlmYAiMxZ9VSIN7dDR7Q6-RLW0qC81ajXoQKHAyrEGpIonfld3gqbE0xO8nisskpmlkQra72-9X6sBPoByqIKyTsO83BQlME2sfOJemWD0HqzwSCjvSQa0x-bUlq9HgH2vEXzpFuSS6Svi7RbfzLXlEuggNoC4MfA4E2hF1OXml8iAKx-49y1BQQe5FGWyCyBSi1TD-ZpVs44H5gIvsGK2kcvi0JT4oHXtWjjQBKLIWL7xxyRCSE4HmUZT2StIHnOwlX7IEIB0oBX4mPg2_xNGnqwcu-8OERU9IoqAAE2cZa0v3b5O2LMcJPrcxrVOukvRIumA
在dashboard的登录窗口使用上面的token登录。

3.4 使用Helm部署metrics-server
从Heapster的github https://github.com/kubernetes/heapster中可以看到已经,heapster已经DEPRECATED。 这里是heapster的deprecation timeline。 可以看出heapster从Kubernetes 1.12开始从Kubernetes各种安装脚本中移除。

Kubernetes推荐使用metrics-server。我们这里也使用helm来部署metrics-server。

metrics-server.yaml:

args:

  • --logtostderr
  • --kubelet-insecure-tls
  • --kubelet-preferred-address-types=InternalIP
    nodeSelector:
    node-role.kubernetes.io/edge: ''
    tolerations:
    • key: node-role.kubernetes.io/master
      operator: Exists
      effect: NoSchedule
    • key: node-role.kubernetes.io/master
      operator: Exists
      effect: PreferNoSchedule

helm install stable/metrics-server \
-n metrics-server \
--namespace kube-system \
-f metrics-server.yaml
使用下面的命令可以获取到关于集群节点基本的指标信息:

如果拉取镜像失败请手动拉取:

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5 gcr.io/google_containers/metrics-server-amd64:v0.3.5docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5
kubectl top nodeNAME    CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%node1   650m         32%    1276Mi          73%node2   73m          3%     527Mi           30%
kubectl top pod -n kube-systemNAME                                    CPU(cores)   MEMORY(bytes)   coredns-5c98db65d4-dr8lf                8m           7Mi             coredns-5c98db65d4-lp8dg                6m           8Mi             etcd-node1                              44m          46Mi            kube-apiserver-node1                    74m          295Mi           kube-controller-manager-node1           35m          50Mi            kube-flannel-ds-amd64-7lwm9             2m           8Mi             kube-flannel-ds-amd64-mm296             5m           9Mi             kube-proxy-7fsrg                        1m           11Mi            kube-proxy-k8vhm                        3m           11Mi            kube-scheduler-node1                    8m           15Mi            kubernetes-dashboard-848b8dd798-c4sc2   2m           14Mi            metrics-server-8456fb6676-fwh3t         10m          19Mi            tiller-deploy-7bf78cdbf7-9q94c          1m           16Mi

遗憾的是,当前Kubernetes Dashboard还不支持metrics-server。因此如果使用metrics-server替代了heapster,将无法在dashboard中以图形展示Pod的内存和CPU情况(实际上这也不是很重要,当前我们是在Prometheus和Grafana中定制的Kubernetes集群中各个Pod的监控,因此在dashboard中查看Pod内存和CPU也不是很重要)。 Dashboard的github上有很多这方面的讨论,如https://github.com/kubernetes/dashboard/issues/2986,Dashboard已经准备在将来的某个时间点支持metrics-server。但由于metrics-server和metrics pipeline肯定是Kubernetes在monitor方面未来的方向,所以推荐使用metrics-server。

k8s国内镜像仓库

docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.15.0docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.15.0 k8s.gcr.io/ube-apiserver:v1.15.0docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.15.0docker pull  registry.aliyuncs.com/google_containers/pause:3.1docker tag registry.aliyuncs.com/google_containers/pause:3.1  k8s.gcr.io/pause:3.1docker rmi registry.aliyuncs.com/google_containers/pause:3.1docker pull  registry.aliyuncs.com/google_containers/kube-controller-manager:v1.15.0 docker tag   registry.aliyuncs.com/google_containers/kube-controller-manager:v1.15.0   k8s.gcr.io/kube-controller-manager:v1.15.0docker rmi   registry.aliyuncs.com/google_containers/kube-controller-manager:v1.15.0  docker pull  registry.aliyuncs.com/google_containers/kube-scheduler:v1.15.0 docker tag   registry.aliyuncs.com/google_containers/kube-scheduler:v1.15.0   k8s.gcr.io/kube-scheduler:v1.15.0docker rmi   registry.aliyuncs.com/google_containers/kube-scheduler:v1.15.0  docker pull  registry.aliyuncs.com/google_containers/coredns:1.3.1     docker tag   registry.aliyuncs.com/google_containers/coredns:1.3.1       k8s.gcr.io/coredns:1.3.1    docker rmi   registry.aliyuncs.com/google_containers/coredns:1.3.1      docker pull  registry.aliyuncs.com/google_containers/etcd:3.3.10     docker tag   registry.aliyuncs.com/google_containers/etcd:3.3.10       k8s.gcr.io/etcd:3.3.10    docker rmi   registry.aliyuncs.com/google_containers/etcd:3.3.10 docker pull quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64docker tag quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64docker rmi quay-mirror.qiniu.com/coreos/flannel:v0.11.0-amd64docker 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.1docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.14.1docker pull  registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1docker rmi  registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.1docker pull  registry.aliyuncs.com/google_containers/kube-proxy:v1.15.0 docker tag   registry.aliyuncs.com/google_containers/kube-proxy:v1.15.0   k8s.gcr.io/kube-proxy:v1.15.0docker rmi   registry.aliyuncs.com/google_containers/kube-proxy:v1.15.0  docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5 k8s.gcr.io/metrics-server-amd64:v0.3.5docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.5
节点 集群 配置 命令 文件 内容 工具 镜像 版本 官方 组件 支持 服务 运行 接下来 仓库 内核 地址 容器 手动 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州紫鲸互联网科技有限公司 美国互联网保险保险科技 科技平台互联网 互联网核心科技是什么 互联网公司 科技公司 西安互联网科技 互联网科技博主是什么意思 互联网科技寓意 欧洲十大科技互联网公司 互联网科技有哪些公司 上海宁丞科技互联网 重庆互联网医院沙龙医盟信息科技 昭通互联网科技选哪家 消费医药和互联网科技 南博望互联网科技有限公司 银川新华互联网科技学校是国营吗 三亚科技创新互联网基地 深圳互联网科技园地址 数字科技和互联网金融哪个好 互联网领先科技成果宣传视频 科技创新与互联网经济 万易互联网科技 九亚互联网科技 云创客互联网科技公司 福建科技产业互联网发展 电子科技大学互联网创业大赛 国大互联网教育科技有限公司工作 科技类公司包括互联网吗 济南有互联网科技公司吗 互联网高科技行业有哪些企业
0