Ubuntu下搭建Kubernetes集群
来源:互联网 发布:linux x86 arm 编辑:程序博客网 时间:2024/06/09 23:44
title: Ubuntu下搭建Kubernetes集群
date: 2015-12-15 21:47:59
tags: [kubernetes,docker]
categories: Kubernetes
Kubernetes是Google开源的容器集群管理系统。它构建Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台。
本文作为Kubernetes分类下的第一篇文章,首先介绍怎么在Ubuntu环境下搭建Kubernetes集群,作为开发和测试环境。
集群节点:
- node1:10.203.2.239 master and minion 物理机
- node2:10.203.2.233 minion Vbox中的虚拟机
- node3:10.203.2.243 minion Vbox中的虚拟机
如上面的信息,此集群共有三个节点,其中我的笔记本本机(IP为10.203.2.239)既作为Master节点又作为Minion节点,运行Ubuntu14.04LTS版本系统。后面的两个是我在本机中使用Virtualbox创建的虚拟机,运行Ubuntu server:14.04.2版本系统。虚拟机使用桥接网络所以可以分配到与笔记本本机在同一网段的IP,且三个机器之间可以互相访问。
接下来配置Master到两个Minion的SSH无密码访问,这里我参考了Linux/UNIX下使用ssh-keygen设置SSH无密码登录,可以参考这个教程配置,很简单。其中执行ssh-keygen -t rsa
命令时可以一直按回车键跳过输入的部分。注意,配置的登陆用户是root
用户。
配置完无密码登陆后,我们在三个机器上安装Docker,在这里我使用了Daocloud
提供的安装方式,由于是国内的服务器,安装很块,链接为:在Linux上安装Docker。这里需要提示的是,如果你使用桥接模式后虚拟机无法上网(Ping不通www.baidu.com,我遇到了这个问题,目前还没解决,但依然可以建立集群,尚不知对Kubernetes集群的影响),但宿主机可以上网,你可以在设置中将网络模式改为NAT
模式,安装完Docker后再改回桥接模式(NAT模式下,宿主机无法访问虚拟机,不能建立集群).
Note:从这里开始请使用root用于登陆本机,即执行su -
(注意后面的横线不能少)
Docker
也安装完成后,我们就可以搭建Kubernetes
集群了,首先下载源码,在这里还有一个问题,之前一直使用github
官方的Kubernetes
源码,但一直搭建不好,出了各种问题,之后看到了国内的一个库,应该和官方是一样的,而且速度快多了,地址是Kubernetes,大家可以使用这个库。
源码下载好后,需要修改配置文件:
root# cd kubernetes/cluster/ubunturoot# vim config-default.sh
要修改三个地方:
1. export nodes=${nodes:-"root@10.203.2.239 root@10.203.2.233 root@10.203.2.243"}
这里是三个节点,有几个就配几个
2. role=${role:-"ai i i"}
这里的值与上面的对应,ai
表示既是master又是minion,i
表示minion节点。
3. export NUM_MINIONS=${NUM_MINIONS:-3}
这里的数字对应节点的个数
然后默认下载的二进制执行文件的版本比较老,我们修改以下,使用比较新的版本:
还是在kubernetes/cluster/ubuntu
文件夹下,打开build.sh
文件,修改如下几行:
FLANNEL_VERSION=${FLANNEL_VERSION:-"0.5.3"}ETCD_VERSION=${ETCD_VERSION:-"2.2.1"}KUBE_VERSION=${KUBE_VERSION:-"1.1.2"}
保存上面两个文件。
下面就开始部署了,kubernetes
的部署挺傻瓜的,首先进入kubernetes/cluster
文件夹下,执行如下命令:
root# KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
其中KUBERNETES_PROVIDER
指明了在Ubuntu上部署集群。
运行此命令后,kubernetes首先根据指定的版本下载flanneld
,etcd
,kubernetes
的可执行文件,由于国内网速较慢,可能需要一些时间,此后的工作会自动完成。
执行成功后,另外打开一个控制台,使用kubectl get nodes
测试是否搭建成功:
chy@chy-station:~$ kubectl get nodesNAME LABELS STATUS AGE10.203.2.233 kubernetes.io/hostname=10.203.2.233 Ready 1h10.203.2.239 kubernetes.io/hostname=10.203.2.239 Ready 1h10.203.2.243 kubernetes.io/hostname=10.203.2.243 Ready 1h
以上信息表示集群搭建成功。
关闭集群是在kubernetes/cluster
文件夹下执行
root# KUBERNETES_PROVIDER=ubuntu ./kube-down.sh
- Ubuntu下搭建Kubernetes集群
- Ubuntu 16.04下搭建kubernetes集群环境
- Ubuntu下kubernetes集群配置
- 搭建kubernetes集群
- kubeadm 搭建 kubernetes 集群
- kubeadm 搭建 kubernetes 集群
- kubernetes集群搭建
- Kubernetes集群搭建【草稿】
- kubernetes(k8s)集群搭建
- kubernetes简单集群搭建
- 十二、kubernetes集群搭建
- kubernetes 集群搭建
- kubernetes-ubuntu集群部署
- Ubuntu下MPICH2集群搭建
- Ubuntu下搭建Redis集群
- ubuntu下搭建redis集群
- Ubuntu下搭建hadoop集群
- Kubernetes-ubuntu-单机搭建
- 高德_浏览器定位是如何实现的?为什么会有浏览器定位失败的情况?
- 前端人员之基础SQL语言学习
- 常见的Angular疑问解答
- socket 简单实现jms(消费者生产者模型)
- Python使用UUID库生成唯一ID
- Ubuntu下搭建Kubernetes集群
- 将二叉树拆成链表
- 将Python脚本打包成可执行文件.exe
- 正则表达式学习
- C++ map类学习笔记
- 在Activity的onCreate方法中显示PopupWindow导致异常的原因分析及解决方案
- 真的了解js生成随机数吗
- WEB消息提醒实现之二 实现方式-websocket实现方式
- bzoj 1095: [ZJOI2007]Hide 捉迷藏 动态树分治+堆