CentOS7环境安装Kubernetes四部曲之一:标准化机器准备
通过Rancher安装Kubernetes的文章前面已经写过,但那时是需要科学上网才能安装成功(下载gcr.io/google_containers/XXXXX的镜像),本次实战依旧是用Rancher来安装Kubernetes,但是会做一些设置,使得不用翻墙也能成功安装K8S环境,另外,在CentOS7环境下,有些设置如果处理不当也会导致安装失败或者加入节点失败,所以也会在本文中交代清楚;
章节列表
整个《CentOS7环境安装Kubernetes四部曲》由以下四篇文章组成:
1. 标准化机器准备,不论是master还是node节点,都要先做一些同样的设置,本章会将这些步骤列出,请参照本章对每一台机器做同样的设置;
2. 安装master,配置模板;
3. 在K8S环境加入机器,并快速部署一个应用作为体验;
4. 安装kubectl工具;
版本信息
本次涉及到的重要软件的版本信息如下:
1. 操作系统:CentOS Linux 7 (3.10.0)
2. Docker:1.12.3
3. Kubernetes:v1.8.3
机器信息
整个环境由两台CentOS7的机器组成,如下:
hostname IP地址 作用 内存大小
master 192.168.119.129 主控制节点 2G
node1 192.168.119.130 业务节点 4G
接下来的操作是通用的,在master和node1两台机器上都要一模一样的做一遍;
建议以root身份来执行以下操作,或者通过sudo su -命令获取root权限;
检查hostname
检查文件/etc/hostname,确保master和node1的不一样,我这边master的hostname就叫master,node的hostname叫node1;
修改后需要重启机器;
检查hosts
检查文件/etc/hosts,确保有hostname和本机IP的配置:
1. 对于master应该有这么一行:192.168.119.129 master
2. 对于node1应该有这么一样:192.168.119.130 node1
IP和DNS
IP地址不能冲突;
能正常解析域名,执行curl www.baidu.com,可以返回网站的html内容;
防火墙
如果是测试环境就关闭防火墙,如果是生产环境需要做详细的设置,关闭防火墙的方法如下:
1. 查看当前防火墙状态:systemctl status firewalld.service
2. 禁止开机启动:systemctl disable firewalld.service
3. 关闭防火墙:systemctl stop firewalld.service
关闭SELinux
打开文件/etc/selinux/config,找到SELINUX=xxxxx这行,改为SELINUX=disabled;
修改后需要重启机器;
开启IPV4转发
打开文件/etc/sysctl.conf,检查是否有net.ipv4.ip_forward = x这样的配置;
如果有就保证x等于1,如果没有就加一行:net.ipv4.ip_forward = 1
修改并保存后,执行命令sysctl -p使配置生效;
执行命令sysctl -a|grep “ip_forward”,查看最新的配置,应该有如下内容:
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_use_pmtu = 0
重启
做完上述步骤后,如果有改动,最好重启机器,以免有设置未能生效;
关闭Swap交换分区
执行命令swapoff -a关闭Swap交换分区;
安装Docker1.2.3版本
什么版本的Docker才能适配Rancher和Kubernetes?rancher的官网给出了一份列表,请参考:http://rancher.com/docs/rancher/v1.6/zh/hosts/#docker,本文我们使用推荐的1.2.3版本,以下是安装步骤:
1. 执行命令:
mkdir -p ~/_src \
&& cd ~/_src \
&& wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-selinux-1.12.3-1.el7.centos.noarch.rpm \
&& wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-1.12.3-1.el7.centos.x86_64.rpm \
&& wget http://yum.dockerproject.org/repo/main/centos/7/Packages/docker-engine-debuginfo-1.12.3-1.el7.centos.x86_64.rpm \
&& yum localinstall -y docker-engine-selinux-1.12.3-1.el7.centos.noarch.rpm docker-engine-1.12.3-1.el7.centos.x86_64.rpm docker-engine-debuginfo-1.12.3-1.el7.centos.x86_64.rpm
2. 设置开机启动:
systemctl enable docker
3. 启动docker:
systemctl start docker
4. 执行docker version命令,看到如下信息:
Client:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built:
OS/Arch: linux/amd64
Server:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built:
OS/Arch: linux/amd64
设置Docker镜像加速
此时如果用docker pull命令下载镜像,本地会连接hub.docker.com网站去下载,耗时较长,因此我们可以设置docker镜像加速,使得本地连接去国内镜像仓库下载,镜像加速的设置有很多种,本章以阿里云的设置为例,步骤如下:
创建目录:
mkdir -p /etc/docker
2. 设置镜像仓库地址:
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xwx6wxd1.mirror.aliyuncs.com"]
}
EOF
3. 重新加载配置:
systemctl daemon-reload
4. 重启docker服务:
systemctl restart docker
至此,机器的标准化准备工作已经完成了,经过了上述操作的机器可以直接拿来安装master,或者作为node加入到kubernetes环境;
本文转自CSDN-CentOS7环境安装Kubernetes四部曲之一:标准化机器准备

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kubernetes 新概念 “Initializers”解析(中):能让你为集群编写插件的新模型
initialization 剖析 1.配置需要 initialization 的资源类型 : InitializerConfiguration(https://kubernetes.io/docs/admin/extensible-admission-controllers/#configure-initializers-on-the-fly) 对象允许你配置被 initializers 分配到的资源类型。 举个例子来说,你可以进行创建,将“myproxy”initializer 添加到类型apps/v1beta1.Deployment 和 v1.DeamonSet 对象中。你可以尽可能多地创建 InitializerConfigurations,它们将适用于所有命名空间 。 2.API 服务器将为新资源分配 initializers: 当你向 apiserver 提交 Deployment 对象时,将更新 Deployment 的metadata.initalizers.pending 并在其中添加“myproxy”值。此字段显示当前分配给资源的initializers 。 准确的...
- 下一篇
如何在Kubernetes上玩转TensorFlow ?
前言 Tensorflow作为深度学习领域逐渐成熟的项目,以其支持多种开发语言,支持多种异构平台,提供强大的算法模型,被越来越多的开发者使用。但在使用的过程中,尤其是GPU集群的时候,我们或多或少将面临以下问题: 资源隔离。Tensorflow(以下简称tf)中并没有租户的概念,何如在集群中建立租户的概念,做到资源的有效隔离成为比较重要的问题; 缺乏GPU调度。tf通过指定GPU的编号来实现GPU的调度,这样容易造成集群的GPU负载不均衡; 进程遗留问题。tf的分布式模式ps服务器会出现tf进程遗留问题; 训练的数据分发以及训练模型保存,都需要人工介入; 训练日志保存、查看不方便; 因此,我们需要一个集群调度和管理系统,可以解决GPU调度、资源隔离、统一的作业管理和跟踪等问题。 目前,社区中有多种开源项目可以解决类似的问题,比如yarn,kubernetes。yarn是hadoop生态中的资源管理系统,而kubernetes(以下简称k8s)作为Google开源的容器集群管理系统,在tf1.6版本加入GPU管理后,已经成为很好的tf任务的统一调度和管理系统。 下文是我们公司在tenso...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 设置Eclipse缩进为4个空格,增强代码规范