使用docker可以批量管理多个容器,但都是在同一台电脑内进行的,这在实际生产环境中是不够用的,如何突破单机的限制?让多个电脑上的容器可以像单机上的docker-compose.yml管理的那样方便呢?kubernetes是个不错的选择,今天我们就来一起实战kubernetes集群环境的搭建吧。

前提条件

由于要用到谷歌的服务,所以要求您的网络环境可以科学上网,具体的方案就不在这里说了;

用于实战的本地环境

本次实战环境是win10,使用VMware® Workstation 12 Player,版本号12.5.6 build-5528349;

整体流程介绍

整个kubernetes集群包括一个master和两个node,所以本次搭建的整体流程计划如下: 
1. 用VMware创建CentOS7的系统; 
2. 在这个CentOS7上安装Docker,kubelet,kubeadm,kubectl等应用,然后关闭并退出这个CentOS7; 
3. 上一步中的CentOS7对应的VMware文件都在一个文件夹中,如下图所示,我们把这个文件夹复制一份备份起来,这就是我们的标准化镜像了,今后安装kubernetes的master或者node的时候,都用这个Vmware文件的副本来进行; 
 
4. 用标准化镜像复制一份,通过VMware打开,然后安装kubernetes的master; 
5. 用标准化镜像复制一份,通过VMware打开,然后安装kubernetes的node,并加入到master控制的集群中; 
6. 装一个tomcat验证;

安装CentOS

在VMware上安装CentOS的具体步骤就不在这里说了,请读者们自行完成,完成过后再执行yum update -y进行更新;

关闭防火墙

执行以下命令关闭防火墙

systemctl stop firewalld;systemctl disable firewalld;setenforce 

再修改文件/etc/selinux/config,将SELINUX的值改成disabled,修改后如下图红框所示: 

重启

为了使上面的改动生效,需要重启CentOS;

配置docker的repo

在目录/etc/yum.repos.d下新建文件docker.repo,内容如下:

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=
gpgcheck=
gpgkey=https://yum.dockerproject.org/gpg

安装docker

执行以下命令安装docker:

yum install -y docker-engine.x86_64

安装成功后,执行以下命令设置自动启动服务:

systemctl enable docker

再执行以下命令启动docker服务:

systemctl start docker

配置kubernetes的repo

在目录/etc/yum.repos.d下新建文件kubernetes.repo,内容如下:

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=
gpgcheck=

安装kubernetes相关的应用

执行以下命令安装

yum install -y kubelet kubeadm kubectl

安装过程如下图所示: 

修改kubernetes的网络配置

修改文件/etc/systemd/system/kubelet.service.d/10-kubeadm.conf,找到下面这一行:

Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"

把systemd改成cgroupfs;cgroupfs 是根据docker info 中 的 Cgroup Driver: cgroupfs 来设定

k8s 1.9版本需要关闭操作系统交换分区

 
swapoff -a

systemctl daemon-reload
然后执行以下命令重启kubelet:
systemctl restart kubelet

保存VMware文件

现在关闭CentOS系统,在VMware的虚拟机文件目录下找到这个CentOS的全部文件,好好保存,咱们后面安装master和node节点都用这个VMware的镜像了,下一章我们一起来安装完整的kubernetes集群;

kubeadm搭建kubernetes集群之一:构建标准化镜像的更多相关文章

  1. kubeadm搭建kubernetes集群之二:创建master节点

    在上一章kubeadm搭建kubernetes集群之一:构建标准化镜像中我们用VMware安装了一个CentOS7虚拟机,并且打算用这个虚拟机的镜像文件作为后续整个kubernetes的标准化镜像,现 ...

  2. kubeadm搭建kubernetes集群之三:加入node节点

    在上一章<kubeadm搭建kubernetes集群之二:创建master节点>的实战中,我们把kubernetes的master节点搭建好了,本章我们将加入node节点,使得整个环境可以 ...

  3. kubeadm 搭建kubernetes集群环境

    需求 kubeadm 搭建kubernetes集群环境 准备条件 三台VPS(本文使用阿里云香港 - centos7.7) 一台能SSH连接到VPS的本地电脑 (推荐连接工具xshell) 安装步骤 ...

  4. 通过Kubeadm搭建Kubernetes集群

    历经断断续续学习的两天,终于完成了一个简单k8s集群. 参考 https://www.cnblogs.com/edisonchou/p/aspnet_core_on_k8s_deepstudy_par ...

  5. centos7使用kubeadm搭建kubernetes集群

    一.本地实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.222.129 >=2c >=2G master 192.168.222.130 >=2 ...

  6. [转帖] kubeadm搭建kubernetes集群

    http://www.bladewan.com/2018/01/02/kubernetes_install/ 学习中 kubernetes V1.9安装(附离线安装包和离线镜像)  2018-01-0 ...

  7. 使用kubeadm搭建Kubernetes集群

    记录在石墨日记中,经常更新,懒得再复制了,直接点击下面链接查看吧 移步到此: https://shimo.im/docs/22WbxxQa1WUV9wsN/

  8. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

  9. Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

    背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...

随机推荐

  1. 【Network Architecture】Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning(转)

    文章来源: https://www.cnblogs.com/shouhuxianjian/p/7786760.html Feature Extractor[Inception v4] 0. 背景 随着 ...

  2. Android开发-网络通信1

    使用 org.apache.http.client.HttpClient; 一开始从官网下载HttpClient 4.5:http://hc.apache.org/downloads.cgi ,解压之 ...

  3. [sping]xml配置文件中factory-bean与factory-method(spring使用工厂方法注入bean)

    public class CarFactory { //非静态方法 public Car createCar(){ Car car = new Car(); car.setBrand("BM ...

  4. HTML DOM(二):节点的增删改查

    上一篇讲述了DOM的基本知识,从其得知,在DOM眼中,HTML的每个成分都可以看作是节点(文档节点.元素节点.文本节点.属性节点.注释节点,其中,属性节点是属于元素节点),本篇的内容就是通过DOM对这 ...

  5. activiti如何让业务对象和对应的流程关联

    如何让业务对象和对应的流程 关联? 发现ProcessInstance 有个方法getBusinessKey()可以得到一个businessKey. ProcessInstance 对应数据库中的表a ...

  6. Android Fragment解析(上)

    今天被人问到了什么是Fragment,真是一头雾水,虽然以前也用到过,但不知道它是叫这个名字,狂补一下. 以下内容来自互联网,原文链接:http://blog.csdn.net/lmj62356579 ...

  7. GoRails教程自建Rails 的 API; gem 'jbuilder'简单用法;使用JWT进行验证(git上的实做);curl命令使用;status状态码;JWT文档翻译摘录;

    API: application programming interface 在Ruby中特指调用某个对象的信息,如hash的方法库library中的方法,参数,回传值等. 视频:如何用Rails 建 ...

  8. 使用Mysql Workbench 导入数据库提示 ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for

    今天再复制服务器上数据库的时候(使用Mysql Workbench )提示1227错误, 数据库版本5.7.18,复制到的数据库也是5.7.18. 总结一下网上的几种方法: 方法一: 最直观的翻译是说 ...

  9. 小练习:Two Sum

    1.example Given nums = [, , , ], target = , Because nums[] + nums[] = + = , , ]. 2.solve class Solut ...

  10. 009——数组(九) each list array_map array_walk array_walk_recursive

    <?php /** * 9 数组 each list array_map array_walk array_walk_recursive */ //each() 返回数组中的键名和键值生成新数组 ...