
ist0ne/kube-state-metrics该镜像旨在解决无法直接从Google Container Registry (GCR)拉取Kubernetes相关镜像的问题。通过Docker Hub的Automated Builds功能,从项目Dockerfile构建Kubernetes 1.5.3版本所需组件镜像,提供可访问的镜像源,支持Kubernetes集群部署。
适用于需要部署Kubernetes 1.5.3版本,且无法直接访问GCR的环境(如国内网络环境或受限网络环境),帮助用户顺利获取和部署Kubernetes核心组件。
Kubernetes 1.5.3部署需以下镜像:
REPOSITORY TAG gcr.io/google_containers/kube-apiserver-amd64 v1.5.3 gcr.io/google_containers/kube-controller-manager-amd64 v1.5.3 gcr.io/google_containers/kube-proxy-amd64 v1.5.3 gcr.io/google_containers/kube-scheduler-amd64 v1.5.3 gcr.io/google_containers/kubernetes-dashboard-amd64 v1.5.0 gcr.io/google_containers/etcd-amd64 3.0.14-kubeadm gcr.io/google_containers/kubedns-amd64 1.9 gcr.io/google_containers/dnsmasq-metrics-amd64 1.0 gcr.io/google_containers/kube-dnsmasq-amd64 1.4 gcr.io/google_containers/kube-discovery-amd64 1.0 gcr.io/google_containers/exechealthz-amd64 1.2 gcr.io/google_containers/pause-amd64 3.0
由于Docker Hub不支持后期修改镜像tag,每次更新Kubernetes版本时,需在Docker Hub的Build Settings中手动添加对应版本的构建文件。
使用以下脚本从Docker Hub拉取镜像并转换为GCR格式tag:
bash# 拉取并转换核心组件镜像 images=(kube-proxy-amd64:v1.5.3 kube-scheduler-amd64:v1.5.3 kube-controller-manager-amd64:v1.5.3 kube-apiserver-amd64:v1.5.3 etcd-amd64:3.0.14-kubeadm kube-discovery-amd64:1.0 pause-amd64:3.0 kubedns-amd64:1.9 dnsmasq-metrics-amd64:1.0 kube-dnsmasq-amd64:1.4 exechealthz-amd64:1.2) for imageName in ${images[@]} ; do docker pull ist0ne/$imageName docker tag ist0ne/$imageName gcr.io/google_containers/$imageName docker rmi ist0ne/$imageName done # 拉取并转换监控组件镜像 images=(heapster:canary heapster_grafana:v3.1.1 heapster_influxdb:v0.7) for imageName in ${images[@]} ; do docker pull ist0ne/$imageName docker tag ist0ne/$imageName kubernetes/$imageName done
执行以下命令安装依赖组件:
bashyum install -y ebtables socat rpm -ivh kubernetes-el7-x86_64/567600102f687e0f27bd1fd3d8211ec1cb12e71742221526bb4e14a412f4fdb5-kubernetes-cni-0.3.0.1-0.07a8a2.x86_64.rpm rpm -ivh kubernetes-el7-x86_64/._8a299eb1db946b2bdf01c5d5c58ef959e7a9d9a0dd706e570028ebb14d48c42e-kubelet-1.5.1-0.x86_64.rpm rpm -ivh kubernetes-el7-x86_64/8a299eb1db946b2bdf01c5d5c58ef959e7a9d9a0dd706e570028ebb14d48c42e-kubelet-1.5.1-0.x86_64.rpm rpm -ivh kubernetes-el7-x86_64/._93af9d0fbd67365fa5bf3f85e3d36060138a62ab77e133e35f6cadc1fdc***-kubectl-1.5.1-0.x86_64.rpm rpm -ivh kubernetes-el7-x86_64/93af9d0fbd67365fa5bf3f85e3d36060138a62ab77e133e35f6cadc1fdc***-kubectl-1.5.1-0.x86_64.rpm
执行以下命令初始化Kubernetes集群:
bashkubeadm init --use-kubernetes-version v1.5.3
为实现跨节点Pod通信,需部署Pod网络。推荐使用Weave Net:
bashkubectl apply -f [***]
验证网络部署成功:检查kube-dns状态(kube-dns依赖Pod网络,状态正常表示网络配置成功)
bashkubectl get pods --all-namespaces
若无法访问Docker Hub,可配置DaoCloud加速服务(在Docker配置中添加--registry-mirror)。但需注意:DaoCloud加速无法直接访问GCR,仍需依赖上述Docker Hub镜像源配置。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务