Docker实践(6)—CentOS7上部署Kubernetes
Kubernetes架构
Kubernetes的整体架构如下:

Master为主控节点,上面运行apiserver,scheduler,controller-manager等组件。Minion相当于工作节点,上面运行kubelet,proxy,cAdvisor以及最重要的docker等组件。下面来实际部署一下这套集群管理工具。
环境
yy1 10.193.6.35
yy2 10.193.6.36
yy1作为master,yy2作为minion。
# cat /etc/centos-release
CentOS Linux release 7.0.1406 (Core)
安装kubernetes
# curl https://copr.fedoraproject.org/coprs/eparis/kubernetes-epel-7/repo/epel-7/eparis-kubernetes-epel-7-epel-7.repo -o /etc/yum.repos.d/eparis-kubernetes-epel-7-epel-7.repo # yum install kubernetes -y
配置yy1
# cat /etc/kubernetes/apiserver ### # kubernetes system config # # The following values are used to configure the kubernetes-apiserver # # The address on the local server to listen to. KUBE_API_ADDRESS="10.193.6.35" # The port on the local server to listen on. KUBE_API_PORT="" # How the replication controller and scheduler find the apiserver KUBE_MASTER="10.193.6.35:8080" # Comma seperated list of minions MINION_ADDRESSES="10.193.6.36" # Port minions listen on MINION_PORT="" # cat /etc/kubernetes/config ### # kubernetes system config # # The following values are used to configure various aspects of all # kubernetes services, including # # kubernetes-apiserver.service # kubernetes-controller-manager.service # kubernetes-kubelet.service # kubernetes-proxy.service # Comma seperated list of nodes in the etcd cluster KUBE_ETCD_SERVERS="http://10.193.6.35:4001" # logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR="true" # journal message level, is debug KUBE_LOG_LEVEL= # Should this cluster be allowed to run privleged docker containers KUBE_ALLOW_PRIV="true"
启动yy1上相关服务
master上需要运行etcd,kube-apiserver,kube-controller-manager,kube-scheduler这4个进程。
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
配置yy2
# cat /etc/kubernetes/kubelet ### # kubernetes kublet (minion) config # The address for the info server to serve on MINION_ADDRESS="10.193.6.36" # The port for the info server to serve on MINION_PORT="" # You may leave this blank to use the actual hostname MINION_HOSTNAME="10.193.6.36" # cat /etc/kubernetes/config ### # kubernetes system config # # The following values are used to configure various aspects of all # kubernetes services, including # # kubernetes-apiserver.service # kubernetes-controller-manager.service # kubernetes-kubelet.service # kubernetes-proxy.service # Comma seperated list of nodes in the etcd cluster KUBE_ETCD_SERVERS="http://10.193.6.35:4001" # logging to stderr means we get it in the systemd journal KUBE_LOGTOSTDERR="true" # journal message level, is debug KUBE_LOG_LEVEL= # Should this cluster be allowed to run privleged docker containers KUBE_ALLOW_PRIV="true"
修改yy2 kubelet的配置
CentOS7上没有docker.socket服务,注释掉kubelet中对docker.socket的依赖。
/usr/lib/systemd/system/kubelet.service
[Unit] Description=Kubernetes Kubelet #After=docker.socket cadvisor.service After=cadvisor.service #Requires=docker.socket cadvisor.service Requires=cadvisor.service
启动yy2上的相关服务
minion上需要运行kube-proxy,kubelet以及docker。
for SERVICES in kube-proxy kubelet docker; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
创建pod描述文件
创建一个apache的pod描述文件。
# cat apache.json
{
"id": "apache",
"desiredState": {
"manifest": {
"version": "v1beta1",
"id": "apache-1",
"containers": [{
"name": "master",
"image": "fedora/apache",
"ports": [{
"containerPort": ,
"hostPort":
}]
}]
}
},
"labels": {
"name": "apache"
}
}
创建pod
通过客户端工具kubecfg提交任务给apiserver,由scheduler选择一个minion部署容。
[root@yy1 ~]# kubecfg -c apache.json create pods I0925 ::26.768122 request.go:] Waiting for completion of /operations/ ID Image(s) Host Labels Status ---------- ---------- ---------- ---------- ---------- apache fedora/apache / name=apache Waiting [root@yy1 ~]# kubecfg list pods ID Image(s) Host Labels Status ---------- ---------- ---------- ---------- ---------- apache fedora/apache 10.193.6.36/ name=apache Waiting
apache服务会自动部署到机器yy2,yy2上的docker会自动下载image,然后启动apache服务。顺利的话,过一会儿,apache服务就会在yy2上起来。
[root@yy1 ~]# kubecfg list pods ID Image(s) Host Labels Status ---------- ---------- ---------- ---------- ---------- apache fedora/apache 10.193.6.36/ name=apache Running

可以尝试访问一下,

主要参考
https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/getting-started-guides/fedora/fedora_manual_config.md
作者:YY哥
出处:http://www.cnblogs.com/hustcat/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Docker实践(6)—CentOS7上部署Kubernetes的更多相关文章
- 在CentOS7上部署Kubernetes集群
在CentOS7上部署Kubernetes集群 文/FCBusquest 2015-12-22 18:36:00 简介 Kubernetes(k8s)是Google开源的大规模容器集群管理系统, 本文 ...
- 在CentOS7上部署 Kubernetes集群
yum -y install etcd docker flannel kubenetes 一般会遇到没有k8s源的问题,先 yum update -y 看是否有效,如果还是没用就创建yum 源,再 ...
- 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...
- 在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客
前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linu ...
- 在 CentOS7 上部署 MySQL 主从
在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...
- 在 CentOS7 上部署 zookeeper 服务
在 CentOS7 上部署 zookeeper 服务 1 用 SecureCRT 或 XShell 等 Linux 客户端工具连接至 CentOS7 服务器: 2 进入到 /usr/local/too ...
- CentOS7上部署ASP.Net Core 2.2应用
前言 在CentOS7上部署ASP.Net Core应用是我的技术路线验证的一部分,下一个产品计划采用ASP.Net Boilerplate Framework开发.因此需要求提前进行一下技术验证,在 ...
- (转)Centos7上部署openstack ocata配置详解
原文:http://www.cnblogs.com/yaohong/p/7601470.html 随笔-124 文章-2 评论-82 Centos7上部署openstack ocata配置详解 ...
- centos7上部署dubbo管理控制台dubbo-admin
centos7上部署dubbo管理控制台dubbo-admin 1 准备工作 服务器:系统centos7, 内存4G, 存储60G, ip 192.168.159.128 软件环境: 安装有jdk1. ...
随机推荐
- GDB的Breakpoint, Watchpoint和Catchpoint
Breakpoint : 设置断点比较直接,在某处停止 Watchpoint : 观察点,即某个变量/表达式发生变化时,停止.可扩展为变量被读/被写/被读or写时都停止 Catchpoint : 在发 ...
- Python-pycharm
进入博客园的第一篇随笔,作为一个编程菜鸟,最近在学习Python,为毕设做准备.总觉得Python自带的idle不太好用,一位“大鸟”向我推荐了pycharm,于是我就抱着试试看的态度下了一个,目前感 ...
- JavaScript-join连接符
1.转字符串:2种 1.将数组中每个元素都转为字符串,再用逗号分隔:var str=String(arr); 2.将数组中每个元素都字符串,再用自定义下标连接每个元素 var str=arr.join ...
- Android 开发必备
Android 开发必备 http://www.androiddevtools.cn/ 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android ...
- [ACM] poj 2456 Aggressive cows (二分查找)
Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5436 Accepted: 2720 D ...
- (并查集)~APTX4869(fzu 2233)
http://acm.fzu.edu.cn/problem.php?pid=2233 Problem Description 为了帮助柯南回到一米七四,阿笠博士夜以继日地研究APTX4869的解药.他 ...
- Unix常用指令
pwd 表示获取自己当前所在位置 ls 表示查看当前文件夹中的内容 cd 进入指定目录 mkdir 文件夹1 创建一个文件夹名为文件夹1的文件夹 rmdir 文件夹2 删除一个文件夹名为文件夹2的 ...
- java servlet 代码样例 (demo)
今天又搞了下jsp +servlet 的代码样例,感觉虽然搭了好多次,可是每次还是不记得那些参数,都要去网上搜索,索性自己把这次的简单demo给记录下来,供下次使用的时候直接复制吧. 这个web逻辑 ...
- linux系统基础网络配置
1.修改主机名 临时方法: 退出当前shell重新登录即可生效.此法只能临时修改生效.重启系统后失效. 提示:很多人使用hostname主机名来修改,其实这个只是作为暂时的.重启后将恢复到配置前的主机 ...
- blob及行外数据
本文中我们假设innodb_page_size为16k,记录格式为compact. 1 大字段 大字段的类型可以参看这里, Data Type Storage Required TINYBLOB, T ...