在CentOS上部署kubernetes集群

    本系列文档介绍使用二进制部署 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群,同时开启了集群的TLS安全认证,该安装步骤适用于所有bare metal环境、on-premise环境和公有云环境。

    如果您想快速的在自己电脑的本地环境下使用虚拟机来搭建kubernetes集群,可以参考。

    在部署的过程中,将详细列出各组件的启动参数,给出配置文件,详解它们的含义和可能遇到的问题。

    部署完成后,你将理解系统各组件的交互原理,进而能快速解决实际问题。

    所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。

    注:本文档中不包括docker和私有镜像仓库的安装,安装说明中使用的镜像来自 Google Cloud Platform,为了方便国内用户下载,我将其克隆并上传到了 时速云镜像市场,搜索”Jimmy“,供大家免费下载。

    欲下载最新版本的官方镜像请访问 。

    • etc:service的环境变量配置文件
    • manifest:kubernetes应用的yaml文件
    • systemd :systemd serivce配置文件

    集群详情

    • OS:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.11.6.el7.x86_64
    • Kubernetes 1.6.0+(最低的版本要求是1.6)
    • Etcd 3.1.5
    • Flannel 0.7.1 vxlan或者host-gw 网络
    • TLS 认证通信 (所有组件,如 etcd、kubernetes master 和 node)
    • RBAC 授权
    • kubelet TLS BootStrapping
    • kubedns、dashboard、heapster(influxdb、grafana)、EFK(elasticsearch、fluentd、kibana) 集群插件
    • 私有docker镜像仓库harbor(请自行部署,harbor提供离线安装包,直接使用docker-compose启动即可)

    在下面的步骤中,我们将在三台CentOS系统的物理机上部署具有三个节点的kubernetes1.6.0集群。

    角色分配如下:

    镜像仓库:172.20.0.112,域名为 ,为私有镜像仓库,请替换为公共仓库或你自己的镜像仓库地址。

    Master:172.20.0.113

    Node:172.20.0.113、172.20.0.114、172.20.0.115

    注意:172.20.0.113这台主机master和node复用。所有生成证书、执行kubectl命令的操作都在这台节点上执行。一旦node加入到kubernetes集群之后就不需要再登陆node节点了。

    安装前的准备

    1. 在node节点上安装docker1.12.5

    2. 关闭所有节点的SELinux

      永久方法 – 需要重启服务器

      修改文件中设置SELINUX=disabled ,然后重启服务器。

      临时方法 – 设置系统参数

      使用命令setenforce 0

      附:setenforce 1 设置SELinux 成为enforcing模式setenforce 0 设置SELinux 成为permissive模式

    3. 准备harbor私有镜像仓库

    1. 创建高可用etcd集群
    2. 部署master节点
    3. 部署node节点
    4. 安装dashboard插件
    5. 安装EFK插件

    提醒

    1. 由于启用了 TLS 双向认证、RBAC 授权等严格的安全机制,建议从头开始部署,而不要从中间开始,否则可能会认证、授权等失败!
    2. 部署过程中需要有很多证书的操作,请大家耐心操作,不明白的操作可以参考本书中的其他章节的解释。

    注:本安装文档参考了