【kubernetes】ubuntu14.04 64位 搭建kubernetes过程
背景:
Kubernetes介绍:http://kubernetes.io/docs/getting-started-guides/
github地址:https://github.com/kubernetes/kubernetes
在ubuntu上安装文档官方地址:http://kubernetes.io/docs/getting-started-guides/ubuntu/
环境:
- Master:
- Ubunut14.04
- 192.168.27.135(NAT)
- Minion1:
- Ubuntu14.04
- 192.168.27.136(NAT)
- Minion2:
- Ubuntu14.04
- 192.168.27.137(NAT)
准备工作:
需要在三个节点上安装docker和ssh,安装ssh:
$ sudo apt-get install openssh-server
$ sudo service ssh start
安装docker:
sudo apt-get install docker-engine
安装Kubernetes:
1、在Master上,首先创建一个工作目录,执行:
$ git clone https://github.com/kubernetes/kubernetes.git
2、下载完后,进入kubernetes目录,修改kubernetes/cluster/ubuntu/config-default.sh文件:
root@192.168.127.135 root@192.168.27.136 root@192.168.27.137
3、安装kubernetes:
$ cd kubernetes/cluster
$ KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
成功安装的截图如下:



访问页面:


遇到的各种坑:
1、重启master节点,如何恢复?
这个问题弄了我至少3小时才搞定,因为我是准备直接重新执行一遍上面步骤的第三步,也就是再执行一次kube-up.sh,然而我发现每次该脚本都会从github上下载etcd、flanneld和kubernetes包,这个包有1.4G大小,可想而知要耽误多少时间。然后我就只能慢慢找这段脚本在哪执行的,最后发现在kubernetes/cluster/ubuntu/下的download-release.sh,也就是下图中的文件。所以我就把文件的内容改了,改成下面代码中的样子,目的是不让它每次都下。随后呢,我的做法是把第一次成功安装的文件备份一下,也就是把kubernetes/cluster/ubuntu/binaries这个目录备份起来,然后直接拷到重启后的master的对应目录。然后再执行kube-up.sh,之后就OK啦!

#!/bin/bash # Copyright The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. # Download the etcd, flannel, and K8s binaries automatically and stored in binaries directory
# Run as root only # author @resouer @WIZARD-CXY
set -e #function cleanup {
# cleanup work
#rm -rf flannel* kubernetes* etcd* binaries
#}
#trap cleanup SIGHUP SIGINT SIGTERM pushd $(dirname $)
mkdir -p binaries/master
mkdir -p binaries/minion # flannel
FLANNEL_VERSION=${FLANNEL_VERSION:-"0.5.5"}
echo "Prepare flannel ${FLANNEL_VERSION} release ..."
grep -q "^${FLANNEL_VERSION}\$" binaries/.flannel >/dev/null || {
# curl -L https://github.com/coreos/flannel/releases/download/v${FLANNEL_VERSION}/flannel-${FLANNEL_VERSION}-linux-amd64.tar.gz -o flannel.tar.gz
# tar xzf flannel.tar.gz
# cp flannel-${FLANNEL_VERSION}/flanneld binaries/master
# cp flannel-${FLANNEL_VERSION}/flanneld binaries/minion
echo ${FLANNEL_VERSION} > binaries/.flannel
} # ectd
ETCD_VERSION=${ETCD_VERSION:-"2.3.1"}
ETCD="etcd-v${ETCD_VERSION}-linux-amd64"
echo "Prepare etcd ${ETCD_VERSION} release ..."
grep -q "^${ETCD_VERSION}\$" binaries/.etcd >/dev/null || {
# curl -L https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/${ETCD}.tar.gz -o etcd.tar.gz
# tar xzf etcd.tar.gz
# cp ${ETCD}/etcd ${ETCD}/etcdctl binaries/master
echo ${ETCD_VERSION} > binaries/.etcd
} function get_latest_version_number {
local -r latest_url="https://storage.googleapis.com/kubernetes-release/release/stable.txt"
if [[ $(which wget) ]]; then
wget -qO- ${latest_url}
elif [[ $(which curl) ]]; then
curl -Ss ${latest_url}
else
echo "Couldn't find curl or wget. Bailing out." >&
exit
fi
} KUBE_VERSION=$(get_latest_version_number | sed 's/^v//') # k8s
echo "Prepare kubernetes ${KUBE_VERSION} release ..."
grep -q "^${KUBE_VERSION}\$" binaries/.kubernetes >/dev/null || {
# curl -L https://github.com/kubernetes/kubernetes/releases/download/v${KUBE_VERSION}/kubernetes.tar.gz -o kubernetes.tar.gz
# tar xzf kubernetes.tar.gz
# pushd kubernetes/server
# tar xzf kubernetes-server-linux-amd64.tar.gz
# popd
# cp kubernetes/server/kubernetes/server/bin/kube-apiserver \
# kubernetes/server/kubernetes/server/bin/kube-controller-manager \
# kubernetes/server/kubernetes/server/bin/kube-scheduler binaries/master
# cp kubernetes/server/kubernetes/server/bin/kubelet \
# kubernetes/server/kubernetes/server/bin/kube-proxy binaries/minion
# cp kubernetes/server/kubernetes/server/bin/kubectl binaries/
echo ${KUBE_VERSION} > binaries/.kubernetes
} #rm -rf flannel* kubernetes* etcd* echo "Done! All your binaries locate in kubernetes/cluster/ubuntu/binaries directory"
popd
【kubernetes】ubuntu14.04 64位 搭建kubernetes过程的更多相关文章
- VisualBox ubuntu14.04 64位 android4.4.4源码编译总结
转载请保留出处:http://www.cnblogs.com/wi100sh/p/4337907.html 折腾了好几天,今天终于编译通过,用了4个多小时,太不容易了.如下图所示: 软件环境 虚拟机: ...
- Ubuntu14.04 64位机上安装cuda8.0 cudnn5.0操作步骤 - 网络资源是无限的
查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...
- Ubuntu14.04(64位)安装ATI_Radeon_R7_M265显卡驱动
电脑型号:Dell inspiron 14-5447 笔记本 显卡配置:集成显卡Intel核心显卡,Cpu是i5-4210U;独立显卡ATI_Radeon_R7_M265 网上关于ATI/Intel双 ...
- ubuntu14.04 64位 安装Tomcat
ubuntu14.04 64位 安装Tomcat 1 下载Tomcat 在htt://www.tomcat.apache.org官网上下载apache-tomcat-7.0.57.tar.gz 2 解 ...
- ubuntu14.04 64位 安装eclipse
ubuntu14.04 64位 安装eclipse 1 在官网上下载eclipse http://www.eclipse.org/downloads/下载eclipse-jee-luna-SR1-li ...
- ubuntu14.04 64位 安装JDK1.7
ubuntu14.04 64位 安装JDK1.7 1 新建文件夹 youhaidong@youhaidong:~$ sudo mkdir /usr/lib/jvm 2 解压文件 youhaidong@ ...
- Ubuntu14.04 64位机上安装OpenCV2.4.13(CUDA8.0)版操作步骤
Ubuntu14.04 64位机上安装CUDA8.0的操作步骤可以参考http://blog.csdn.net/fengbingchun/article/details/53840684,这里是在已经 ...
- Ubuntu14.04 64位机上安装cuda8.0+cudnn5.0操作步骤
查看Ubuntu14.04 64位上显卡信息,执行: lspci | grep -i vga lspci -v -s 01:00.0 nvidia-smi 第一条此命令可以显示一些显卡的相关信息:如果 ...
- ubuntu14.04 64位安装H3C iNode客户端
环境: OS:ubuntu14.04LTS 64位 iNode: iNode2.40-R0162 for linux(iNode只有32位的,而且是很久以前的版本) 安装方法: 第一种: 检查本机是6 ...
随机推荐
- 天气api接口
python调用天气api接口: http://www.sojson.com/open/api/weather/json.shtml?city=北京 http://www.sojson.com/blo ...
- Django===django工作流
通过一张图来总结一下Django 的处理过程: URL 组成: 协议类型: HTTP/HTTPS HTTP 协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW ...
- Vim中的键映射【转】
转自:http://www.cnblogs.com/softwaretesting/archive/2011/09/28/2194515.html http://www.pythonclub.org/ ...
- XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件
XCOPY是COPY的扩展,可以把指定的目录连文件和目录结构一并拷贝,但不能拷贝系统文件:使用时源盘符.源目标路径名.源文件名至少指定一个:选用/S时对源目录下及其子目录下的所有文件进行COPY.除非 ...
- 安装icephp 记
下面开始安装: 一:yum 安装 首先需要添加一个yum源. # vi /etc/yum.repos.d/zeroc-ice-amzn.repo写入: [zeroc-ice]name=Ice 5 fo ...
- Redis在CentOS 7上的安装部署
简介: Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集( ...
- django “如何”系列1:如何使用REMOTE_USER(远程用户)进行认证
这节主要介绍当web服务器使用了REMOTE_USER的时候,该如何在你的django应用中使用外部的认证源,远程用户主要见于企业内部网,主要使用单点登录解决方案. 在django中,REMOTE_U ...
- 【python】发送邮件
从网上找了一些用python发邮件的教程,学习一下: 1.发送普通的文本邮件 http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.ht ...
- POJ 1160 Post Office(DP+经典预处理)
题目链接:http://poj.org/problem?id=1160 题目大意:在v个村庄中建立p个邮局,求所有村庄到它最近的邮局的距离和,村庄在一条直线上,邮局建在村庄上. 解题思路:设dp[i] ...
- 转载--MyBaits中的#和$的区别
面试被问到了,百度了下,原文地址:mybatis中的#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111, ...