CentOS 7 YUM 搭建Kubernetes 1.0

简介: 本文为叙述了在centos7的裸机下安装 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]

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
关系型数据库 MySQL Linux
CentOS 7.4下使用yum安装MySQL5.6
CentOS 7.4下使用yum安装MySQL5.6
80 0
|
5天前
|
Linux
CentOS 7 配置yum阿里源 (三步即可)
CentOS 7 配置yum阿里源 (三步即可)
|
18天前
|
Linux
centos 6.5安装yum
centos 6.5安装yum
50 0
|
18天前
|
Linux
CentOS6使用第三方YUM源(EPEL、RPMForge和RPMFusion)
CentOS6使用第三方YUM源(EPEL、RPMForge和RPMFusion)
|
19天前
|
存储 Linux 网络安全
centos7使用yum网络安装
这些是使用Yum进行网络安装的基本步骤。根据你的需求,你可以重复步骤3和4来安装其他软件包。请注意,执行Yum操作需要root或具有sudo权限的用户。
47 1
|
29天前
|
Kubernetes Linux 网络安全
CentOS7搭建Kubernetes环境
CentOS7搭建Kubernetes环境
62 0
CentOS7搭建Kubernetes环境
|
29天前
|
缓存 Linux
修改CentOS默认yum源为阿里镜像源
修改CentOS默认yum源为阿里镜像源
215 0
|
1月前
|
缓存 Linux
linux centos7 挂载本地iso yum源
linux centos7 挂载本地iso yum源
86 0
|
1月前
|
关系型数据库 MySQL Linux
Centos7 yum安装lAMP 环境 php版本5.6.38 mysql版本5.7.22
Centos7 yum安装lAMP 环境 php版本5.6.38 mysql版本5.7.22
28 0
|
1月前
|
关系型数据库 MySQL Linux
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
109 0