部署结构

  1. 3台虚拟机,其中1台作为master,2台作为minion,都安装了最新版本的docker engine(目前是1.11.2)
  2. k8s版本是1.3.0

主要问题

部署步骤基本按照官方文档:http://kubernetes.io/docs/getting-started-guides/ubuntu/,但是有两个主要问题

  1. 国内下载安装包太慢

    安装脚本使用curl下载k8s的release tar包(1.3.0的release包有1.4G),经常timeout中断安装

  2. GFW限制了对gcr.io的访问

    k8s在创建Pod的时候,需要从gcr.io下载一个helper镜像(目前是 gcr.io/google_containers/pause-amd64:3.0 )。这个问题会导致无法下载该镜像,然后Pod一直处于ContainerCreating状态。

这里主要介绍一下如何解决这两个问题。

部署步骤

1. 在部署机上下载k8s,并编译。

部署机需要安装docker engine(1.11.2)和go(1.6.2)

$git clone https://github.com/kubernetes/kubernetes.git
$cd kubernetes
$make release-skip-tests
$mv _output/release-stage/full/kubernetes/server/kubernetes-server-linux-amd64.tar.gz cluster/ubuntu/

Note

除了linux/amd64,默认还会为其他平台做交叉编译。为了减少编译时间,可以修改hack/lib/golang.sh,把KUBE_SERVER_PLATFORMS, KUBE_CLIENT_PLATFORMS和KUBE_TEST_PLATFORMS中除linux/amd64以外的其他平台注释掉。

2. 下载etcd,flannel安装包

$ETCD_VERSION=${ETCD_VERSION:-"2.3.1"}
$ETCD="etcd-v${ETCD_VERSION}-linux-amd64"
$curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o cluster/ubuntu/etcd.tar.gz $FLANNEL_VERSION=${FLANNEL_VERSION:-"0.5.5"}
$curl -L https://github.com/coreos/flannel/releases/download/v${FLANNEL_VERSION}/flannel-${FLANNEL_VERSION}-linux-amd64.tar.gz -o cluster/ubuntu/flannel.tar.gz

3. 解压缩安装包

$cd cluster/ubuntu
$mkdir -p binaries/master
$mkdir -p binaries/minion $ tar xzf etcd.tar.gz
$ cp ${ETCD}/etcd ${ETCD}/etcdctl binaries/master
$ echo ${ETCD_VERSION} > binaries/.etcd $tar xzf flannel.tar.gz
$cp flannel-${FLANNEL_VERSION}/flanneld binaries/master
$cp flannel-${FLANNEL_VERSION}/flanneld binaries/minion
$echo ${FLANNEL_VERSION} > binaries/.flannel $KUBE_VERSION=1.3.0
$tar xzf kubernetes-server-linux-amd64.tar.gz
$cp kubernetes/server/bin/kube-apiserver kubernetes/server/bin/kube-controller-manager kubernetes/server/bin/kube-scheduler binaries/master
$cp kubernetes/server/bin/kubelet kubernetes/server/bin/kube-proxy binaries/minion
$cp kubernetes/server/bin/kubectl binaries/
$echo ${KUBE_VERSION} > binaries/.kubernetes

4. 安装

$ cd ../

$export nodes="ubuntu@10.1.9.2 ubuntu@10.1.9.3 ubuntu@10.1.9.4"
$export role="ai i i"
$export NUM_NODES=${NUM_NODES:-3}
$export SERVICE_CLUSTER_IP_RANGE=192.168.3.0/24
$export FLANNEL_NET=172.16.0.0/16 $KUBERNETES_PROVIDER=ubuntu ./kube-up.sh

5. 解决不能从gcr.io下载pause-amd64:3.0 镜像的问题

1) 在可以访问gcr.io的地方

docker pull gcr.io/google_containers/pause-amd64:3.0

传到私有docker registry

docker tag gcr.io/google_containers/pause-amd64:3.0 k8s-docker.mydomain.com/google_containers/pause-amd64:3.0

docker push k8s-docker.mydomain.com/google_containers/pause-amd64:3.0

2) 在所有的k8s节点

docker pull k8s-docker.mydomain.com/google_containers/pause-amd64:3.0

docker tag k8s-docker.mydomain.com/google_containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0

Note

不通过私有registry中转,而是使用docker save/load应该也可以,只是要把save导出的文件复制到所有节点

Ubuntu 14.04主机上部署k8s集群的更多相关文章

  1. 在 Ubuntu 14.04 服务器上部署 Hexo 博客

    版权声明:本文由宋秉金 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/241080001487926962 来源:腾云阁  ...

  2. Ubuntu 14.04下Hadoop2.4.1集群安装配置教程

    一.环境 系统: Ubuntu 14.04 64bit Hadoop版本: hadoop 2.4.1 (stable) JDK版本: OpenJDK 7 台作为Master,另3台作为Slave. 所 ...

  3. 在Linux(ubuntu 14.04)上部署WeX5跨平台App(HTML5)

    1. 前言   这篇文章讲述的是把毕业设计的用 WeX5 开发的项目部署到阿里云的Linux(ubuntu14.04)上,本来可以部署在WeX5自带的服务器上,但是WeX5的服务器我以前部署的项目突然 ...

  4. 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。

    1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释   CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...

  5. 【转】如何在Ubuntu 14.04 LTS上设置Nginx虚拟主机

    介绍 转自http://www.pandacademy.com/%E5%A6%82%E4%BD%95%E5%9C%A8ubuntu-14-04-lts%E4%B8%8A%E8%AE%BE%E7%BD% ...

  6. 在Ubuntu 14.04 64bit上安装numpy和matplotlib库

    原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战> ...

  7. 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad

    简介 Haroopad:一款让你欲罢不能的Markdown编辑器 身为大程序员,我本来是不需要 Markdown 编辑器的,但是 Haroopad 让我简直欲罢不能,不能再爱更多.跨平台,代码高亮,V ...

  8. Docker - 在Ubuntu 14.04 Server上的安装Docker

    在 Ubuntu 14.04 Server 上安装过程是最简单的, 其满足了安装 Docker的所有要求,只需要执行如下安装脚本即可. 如果你有可能,请使用14.04版本的Ubuntu, 避免给自己挖 ...

  9. kubernetes系列03—kubeadm安装部署K8S集群

    本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...

随机推荐

  1. 更改Thunderbird的默认语言

    使用的Thunderbird Poratable版本是英文的,可以用以下方式修改为中文界面: 1.下载中文语言包 在官方网站的https://addons.mozilla.org/en-US/thun ...

  2. ionic新手教程第八课-(加更)从无到有说Ionic、绘图说明MVC-U-S

    这节课的内容,有些前面几节已经说过了. 公司这次给我一个任务,让我带一个没有编程基础的同事学习ionic. 今天是我跟他讲的第一课,晚上把讲的笔记整理了一下,认为还是挺适合零基础的朋友学习的. 有些前 ...

  3. Orchard运用 - 定制博客分页显示

    一般,对于条目过多的系统或博客,分页显示是最简单的方式.目前分页方式基本有三种格式: 1.显示所有信息,包括标明当前页面,提供上一页和下一页链接和使用首页和末页链接. 2.只标注上一页和下一页链接. ...

  4. UVA 10123 No Tipping (物理+贪心+DFS剪枝)

    Problem A - No Tipping As Archimedes famously observed, if you put an object on a lever arm, it will ...

  5. C#中的yield

    一.C#中yield关键字用于遍历循环中,yield语句的两种形式 yield return用于返回IEnumerable<T>, yield break用于终止循环遍历. 二.yield ...

  6. SQL PRIMARY KEY,SQL FOREIGN KEY

    A primary key is defined as a column or a group of column that their value are always be unique. Nor ...

  7. Android -- 启动模式

    Android的启动模式分为四种: standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中. singleTop 如果在任务的栈顶正好存在该Activity ...

  8. c语言打印uint64, int64

    http://stackoverflow.com/questions/9225567/how-to-print-a-int64-t-type-in-c

  9. powershell 远程重启/关闭服务器

    powershell 远程重启/关闭服务器 #启动winrm PS C:\Windows\system32> winrm quickconfig -q #设置信任主机 PS C:\Windows ...

  10. OpenStack 部署总结之:单节点icehouse网桥的配置

    部署完icehouse,安装完实例之后.假设虚拟主机须要和外部进行通信.还须要对宿主机的网桥进行配置 宿主机的配置 改动ifcfg-em1的内容为下面内容: DEVICE=em1 ONBOOT=yes ...