使用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. jmeter随笔

    1. ${__time(yyyy-MM-dd HH:mm:ss,)} 2. import use.GetRsaContent; String pfxPath = "pfx";Str ...

  2. consul 小結

    Consul Config 使用Git做版本控制的实现 https://segmentfault.com/a/1190000013807641 服务发现 - consul 的介绍.部署和使用 http ...

  3. 机器学习笔记—Logistic 回归

    前面我们介绍了线性回归,为捕获训练集中隐藏的线性模型,提高预测准确率,我们寻找最佳参数 θ,使得预测值与真实值误差尽量小,也就是使均方误差最小.而经过验证,最小均方误差是符合最大似然估计理论的. 在 ...

  4. Git 设置 SOCKS 代理

    $ export all_proxy=socks5://127.0.0.1:1080

  5. bzoj 1270: [BeijingWc2008]雷涛的小猫 简单dp+滚动数组

    1270: [BeijingWc2008]雷涛的小猫 Time Limit: 50 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Descrip ...

  6. php调用mysql存储过程

    MYSQL存储过程 原文链接:http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 一.存储过程简介(mysql5.0以上支持) 我们常用的操作数据 ...

  7. [Vue]组件——.sync 修饰符实现对prop 进行“双向绑定”

    一.同时设置1个 prop 1.以 update:my-prop-name 的模式触发事件,如对于title属性: this.$emit('update:title', newTitle) 2.然后父 ...

  8. 已知起始点,获取每段等距离途经点的经纬度(用百度js api作)

    已知两个中文地址,自动规划路径,获取路径上每个3公里的点的经纬度 <html> <head> <meta http-equiv="Content-Type&qu ...

  9. AsyncCallback 异步回调委托

    js是单线程语言,单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务.如果前一个任务耗时很长,后一个任务就不得不一直等着. 如果排队是因为计算量大,CPU忙不过来,倒也算了,但是很多 ...

  10. 19.并发容器之BlockingQueue

    1. BlockingQueue简介 在实际编程中,会经常使用到JDK中Collection集合框架中的各种容器类如实现List,Map,Queue接口的容器类,但是这些容器类基本上不是线程安全的,除 ...