Ubuntu 14.04主机上部署k8s集群
部署结构
- 3台虚拟机,其中1台作为master,2台作为minion,都安装了最新版本的docker engine(目前是1.11.2)
- k8s版本是1.3.0
主要问题
部署步骤基本按照官方文档:http://kubernetes.io/docs/getting-started-guides/ubuntu/,但是有两个主要问题
- 国内下载安装包太慢
安装脚本使用curl下载k8s的release tar包(1.3.0的release包有1.4G),经常timeout中断安装
- 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集群的更多相关文章
- 在 Ubuntu 14.04 服务器上部署 Hexo 博客
版权声明:本文由宋秉金 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/241080001487926962 来源:腾云阁 ...
- Ubuntu 14.04下Hadoop2.4.1集群安装配置教程
一.环境 系统: Ubuntu 14.04 64bit Hadoop版本: hadoop 2.4.1 (stable) JDK版本: OpenJDK 7 台作为Master,另3台作为Slave. 所 ...
- 在Linux(ubuntu 14.04)上部署WeX5跨平台App(HTML5)
1. 前言 这篇文章讲述的是把毕业设计的用 WeX5 开发的项目部署到阿里云的Linux(ubuntu14.04)上,本来可以部署在WeX5自带的服务器上,但是WeX5的服务器我以前部署的项目突然 ...
- 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。
1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释 CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...
- 【转】如何在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% ...
- 在Ubuntu 14.04 64bit上安装numpy和matplotlib库
原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战> ...
- 在Ubuntu 14.04 64bit上安装Markdown和绘图软件Haroopad
简介 Haroopad:一款让你欲罢不能的Markdown编辑器 身为大程序员,我本来是不需要 Markdown 编辑器的,但是 Haroopad 让我简直欲罢不能,不能再爱更多.跨平台,代码高亮,V ...
- Docker - 在Ubuntu 14.04 Server上的安装Docker
在 Ubuntu 14.04 Server 上安装过程是最简单的, 其满足了安装 Docker的所有要求,只需要执行如下安装脚本即可. 如果你有可能,请使用14.04版本的Ubuntu, 避免给自己挖 ...
- kubernetes系列03—kubeadm安装部署K8S集群
本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...
随机推荐
- git使用教程1-本地代码上传到github
前言 不会使用github都不好意思说自己是码农,github作为一个开源的代码仓库管理平台,我们可以把自己的代码放到github上,分享给小伙伴,自己也能随时随地同步更新代码. 问题来了:为什么越来 ...
- Java垃圾回收精粹 — Part4
Java垃圾回收精粹分4个部分,本篇是第4部分.在第4部分里介绍了G1收集器.其他并发收集器以及垃圾收集监控和调优. Garbage First (G1) 收集器 G1 (-XX:+UseG1GC)收 ...
- iOS-- UIimageView详解
原文地址: http://blog.csdn.net/djxiaoyu_haha/article/details/40348377 // (1)创建 UIImageView *imageView = ...
- [翻译] UIView-draggable 可拖拽的UIView
UIView-draggable 可拖拽的UIView https://github.com/andreamazz/UIView-draggable UIView category that adds ...
- maven添加本地非repository中的jar包
1.今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. ...
- 5 cocos2dx 3.0源码分析 渲染 render
渲染,感觉这个挺重要了,这里代入一个简单的例子 Sprite 建立及到最后的画在屏幕上, 我们描述一下这个渲染的流程: 1 sprite 初始化(纹理, 坐标,及当前元素的坐标大小信息) 2 主循 ...
- 一道有序洗牌的笔试题,阿里\UC等都用过
题目:给定一个已经降序排好序的正数数组,要求按「最小.最大.次小.次大……」的顺序重新排序.期望的时间复杂度为O(n),空间复杂度为O(1),即不能申请额外的数组. 例如:输入[7,6,5,4,3,2 ...
- 82. Remove Duplicates from Sorted List II && i
题目 83. Remove Duplicates from Sorted List Given a sorted linked list, delete all duplicates such tha ...
- 复习原生ajax
function ajax(url, fnSucc, fnFaild) { //1.创建 if(window.XMLHttpRequest) { var oAjax=new XMLHttpReques ...
- 【分布式计算】关于Hadoop、Spark、Storm的讨论
参考资料: 与 Hadoop 对比,如何看待 Spark 技术?:https://www.zhihu.com/question/26568496 还要不要做大数据:http://sinofool.cn ...