CentOS 7 YUM 搭建Kubernetes 1.0
Kubernetes 日前终于发布了稳定版 1.0, 本文将要出一个系列的文章来讲述如何搭建环境,部署服务,网络分析,升级服务,备份数据,最后到达如何对Kubernetes进行二次发。
CentOS7 YUM 搭建Kubernetes 1.0
相信点击进来的人都应该知道Kubernetes是什么吧,关于介绍,请看: http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global 讲解的很清楚。
本文直接切入正题。
本文搭建的基本环境是 Kubernetes 1.0 + CentOS 7的两台虚拟机:一台作为Master,一台作为Minion。
1. 简要叙述
搭建过程:
1.网络搭建,将采用Flannel
2.安装master和minion端需要的软件
3.启动Kubernetes集群
2. 网络搭建
在裸机上安装Kubernetes需要先备好一个网络:我选择的是简单的Flannel,够用就好。
Flannel网络搭建较为简单,部署一个etcd的集群,然后build flannel,运行即可。此不是文章重点。具体可参考: http://www.slideshare.net/lorispack/using-coreos-flannel-for-docker-networking 如果遇到了问题可以咨询我,
关于Flannel在docker网络中的作用可以看这篇博客: http://my.oschina.net/xue777hua/blog/488345
3. 安装Kubernetes集群
其中 centos-master = 192.168.56.110 centos-minion = 192.168.56.111 请设置好/etc/hosts文件,或者是DNS。
master运行如下组件:etcd, kube-apiserver, kube-controller-manager, kube-scheduler, kube-proxy
minion运行如下组件:docker, kubelet, kube-proxy
当然,前提是flannel网络在两边都可以work, 当然更加的前提是安装好了docker,检验的方式是:在master和minion都分别启动一个container,在container之间互相能够ping对方即可。
3.1 为机器添加repo
在 master+minion上, 使用virt7-testing的repo:
[virt7-testing] name=virt7-testing baseurl=http://cbs.centos.org/repos/virt7-testing/x86_64/os/ gpgcheck=0
3.2 安装Kubernetes软件
在所有的机器上执行 yum -y install --enablerepo=virt7-testing kubernetes 即可。
检查etcd的版本是否为 0.4.6-7 , 如果不是,则删除etcd并且从rpm安装:
yum erase etcd yum install http://cbs.centos.org/kojifiles/packages/etcd/0.4.6/7.el7.centos/x86_64/etcd-0.4.6-7.el7.centos.x86_64.rpm yum -y install --enablerepo=virt7-testing kubernetes
3.3 配置Kubernetes集群
1.设置 master+minion的 /etc/kubernetes/config 为:
KUBE_ETCD_SERVERS="--etcd_servers=http://centos-master:4001" KUBE_LOGTOSTDERR="--logtostderr=true" KUBE_LOG_LEVEL="--v=0" KUBE_ALLOW_PRIV="--allow_privileged=false"
特别是 KUBE_ETCD_SERVERS 特别重要,表示要连接的etcd的服务,Kubernetes的各种信息:例如物理机,容器的基本信息都是存储在Kubernetes上面的。
2.设置 master+minion的 /etc/kubernetes/apiserver 为(只列出了重要的几个配置):
# 需要连接的master的地址,kubelet需要连接到kube-apiserver来工作 KUBE_API_ADDRESS="--address=centos-master" KUBE_API_PORT="--port=8080" # 服务所在的ip地址范围,服务是一组pod的组合产物 KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
3.设置 minion端的 /etc/kubernetes/kubelet 文件
# kubelet绑定的ip地址 KUBELET_ADDRESS="--address=0.0.0.0" # kubelet的通信段耨 KUBELET_PORT="--port=10250" # kubelet的hostname,到时候用kubectl get po 可以拿到的结果 KUBELET_HOSTNAME="--hostname_override=centos-minion" # api-server的通信端口 KUBELET_API_SERVER="--api_servers=http://centos-master:8080"
4.设置iptables 8080, 10250 的tcp端口都添加到防火墙列外,另外安装flannel也要记得设置好iptables,具体见我的博客:http://my.oschina.net/xue777hua/blog/488345
4. 启动Kubernetes集群
个人经验是执行下面的命令之后使用 systemctl status -l $SERVICES 检验一遍,如果有问题执行systemctl restart $SERVICES 。
4.1 启动master
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler kube-proxy; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done
4.2 启动minion
for SERVICES in kube-proxy kubelet docker; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done
启动完毕后,master端执行kubectl get no,如果能看到下面的结果即为成功:
[03:01 AM root@centos-master ~]$ kubectl get no NAME LABELS STATUS centos-minion kubernetes.io/hostname=centos-minion Ready
[参考]
http://kubernetes.io/
文章转载自 开源中国社区[https://www.oschina.net]

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Speedy:来自京东的 Docker 镜像存储系统
镜像是Docker项目最大的创新点之一,所有的Docker容器都源于镜像。不可否认镜像存储是Docker工作流中的重要一环,Docker Registry是官方提供的开源项目用以保存镜像,同时它也提供了后端存储系统来解决镜像的落地问题,比如Local Filesystem、S3、Swift。Speedy是由京东开源的一个分布式镜像后端存储系统,在架构设计上更好的解决了扩展性和可用性的问题。就Speedy项目的更多细节,InfoQ采访了其负责人田琪。另外,田琪也是也是全球架构师峰会北京站2015《云服务架构探索》专题的出品人。 受访嘉宾介绍 田琪,京东资深架构师。10年互联网行业从业经验,分别就职于搜狐、新浪、腾讯、京东等公司,目前负责京东云主机及云数据库的架构及研发工作,曾在新浪微博负责新浪微博的底层平台研发工作,主导了Redis在新浪微博的大规模定制开发与应用。之后加入腾讯负责腾讯大规模分布式存储项目的研发与架构工作,为腾讯众多业务产品线提供高可靠的存储服务。 InfoQ:能否介绍下你们的Docker镜像存储系统Speedy?为什么要做Speedy? 田琪:我们通过Docker搭建了...
- 下一篇
容器生成和运行工具 runC
runC 详细介绍 runc 是一个命令行工具,用来大量生成和运行符合 OCF/OCP 规范的容器。 可嵌入 容器作为 runC 的子进程开启,在不需要运行一个 Docker daemon 的情况下可以嵌入到其他各种系统。 硬实力 runC 基于 libcontainer,同样的容器技术驱动百万级 Docker Engine 安装。 兼容 Docker Docker 镜像可以在 runC 运行。 Systemd 集成 [Unit] Description=Minecraft Build Server Documentation=http://minecraft.net After=network.target [Service] CPUQuota=200% MemoryLimit=1536M ExecStart=/usr/local/bin/runc Restart=on-failure WorkingDirectory=/containers/minecraftbuild [Install] WantedBy=multi-user.target 示例: runc / $ ps PID...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路