rancher中国区加速安装Kubernetes

4,580 阅读3分钟

上篇 《rancher安装Kubernetes》 最后的步骤是错误的,即使每次手动改了k8s的镜像,但是依然服务pull,而且每次重启docker或者k8s,又会重置回默认的gcr.io的镜像。

本文是在群内@天阑-李小威 @洪晓露 @logan 等大神指导下,并根据 《原生加速中国区Kubernetes安装》,最终搞定的方案

环境准备

主机名 主机ip OS docker version ranhcer version
anjia-ubuntu 192.168.31.83 ubuntu 17.04 4.9.0-12-generic x86_64 Docker version 1.12.6 v1.6.11-rc10

安装 docker

按照 Getting Started with Hosts#SUPPORTED DOCKER VERSIONS 安装受支持的docker-ce version (如果国内安装较慢,可以考虑使用中科大docker镜像 ,或者其他阿里云镜像,腾讯云镜像,清华镜像等)

如果之前装有其他版本的,需要删除所有镜像和容器,并卸载docker重装,rancher k8s 目前只支持 docker 1.12.3+ 的版本

sudo apt install docker.io

安装rancher

按照 Installing Rancher Server 根据实际情况,安装rancher ,建议使用 加速器 DaoCloud - 业界领先的容器云平台 或者 阿里云docker加速器

如果rancher/server是v1.6.10版本(低于v1.6.10版本未试过),需要你修改私有registry,且将gcr.io的插件push到私有registry,且namespace必须为google_containers,如果允许的话,请选择v1.6.11+(目前v1.6.11还是rc版) 请根据实际情况自行选择版本

sudo docker run -d --restart=unless-stopped --name=rancher-server -p 8080:8080 rancher/server:v1.6.11-rc10 && sudo docker logs -f rancher-server
#sudo docker run -d --restart=unless-stopped --name=rancher-server -p 8080:8080 rancher/server:v1.6.10 && sudo docker logs -f rancher-server

注册 docker hub

安装k8s

如果之前安装过docker和k8s,需要运行

docker rm -f -v $(docker ps -aq) 
docker volume rm $(docker volume ls)
sudo rm -rf /var/etcd/

创建环境模板

创建环境模板
创建环境模板

修改k8s模板

Private Registry for Add-Ons and Pod Infra Container Image index.docker.io

Image namespace for Add-Ons and Pod Infra Container Image anjia0532

Image namespace for kubernetes-helm Image anjia0532

Pod Infra Container Image anjia0532

修改k8s模板
修改k8s模板

修改k8s模板
修改k8s模板

修改k8s模板
修改k8s模板

创建k8s环境

创建k8s环境
创建k8s环境

选择k8s环境并添加主机

选择k8s环境并添加主机
选择k8s环境并添加主机

查看k8s基础服务状态

当基础服务都是绿色后,即可使用

查看k8s基础服务状态
查看k8s基础服务状态

查看k8s 仪表板 dashboard

查看k8s 仪表板 dashboard
查看k8s 仪表板 dashboard

异常排查

如果打开dashboard 报 503 ServiceUnavailable , 非常感谢群内@天阑-李小威 耐心解答,同时 参考 Kubernetes 部署失败的 10 个最普遍原因(Part 1) 解决了好几个问题

打开Cli

> kubectl --namespace=kube-system  get pods
NAME                                   READY     STATUS             RESTARTS   AGE
heapster-79684d56d6-8pjrd              1/1       Running            0          13m
kube-dns-7f59fd996-nkvv5               3/3       Running            0          13m
kubernetes-dashboard-86d9cc5b4-7lxj5   0/1       ImagePullBackOff   0          13m
monitoring-grafana-6dc7576774-8x79x    1/1       Running            0          13m
monitoring-influxdb-d78f84c6c-29wcp    1/1       Running            0          13m
tiller-deploy-c4598db7d-8wxpp          1/1       Running            0          13m

# 复
> kubectl --namespace=kube-system  describe pod kubernetes-dashboard-86d9cc5b4-7lxj5
# 我这是正常Running的日志,ImagePullBackOff的没截下来
 Events:
  Type    Reason                 Age   From               Message
  ----    ------                 ----  ----               -------
  Normal  Scheduled              16m   default-scheduler  Successfully assigned kubernetes-dashboard-86d9cc5b4-7lxj5 to k8s
  Normal  SuccessfulMountVolume  16m   kubelet, k8s       MountVolume.SetUp succeeded for volume "io-rancher-system-token-lb68r"
  Normal  Pulled                 16m   kubelet, k8s       Container image "index.docker.io/anjia0532/kubernetes-dashboard-amd64:v1.7.1" already present on machine
  Normal  Created                16m   kubelet, k8s       Created container
  Normal  Started                16m   kubelet, k8s       Started container

# 也可以根据 events 来辅助排查问题
> kubectl --namespace=kube-system get events

博客 anjia.ml/2017/11/13/…
掘金 juejin.cn/post/684490…
简书 www.jianshu.com/p/2f906a7f4…