Centos部署kubernetes集群

前言

本文介绍使用二进制部署最新 kubernetes v1.6.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。
在部署的过程中,将详细列出各组件的启动参数,它们的含义和可能遇到的问题。
部署完成后,你将理解系统各组件的交互原理,进而能快速解决实际问题。
所以本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来 学习和了解系统配置、运行原理的人。
本系列系文档适用于 CentOS 7Ubuntu 16.04 及以上版本系统,由于启用了 TLS 双向认证、RBAC 授权等严格的安全机制,建议从头开始部 署,否则可能会认证、授权等失败!

注:本文中不包括docker和私有镜像仓库的安装,安装说明中使用的镜像来自 Google Cloud Platform,中国大陆用户若无法访问请自行选择其他镜像仓库备份。

准备

主机角色分配

IPRoles
172.20.0.112Harbor(私有镜像仓库)
172.20.0.113master、node、kube-piserver、kube-controller-managerkube、scheduler、kubelet、kube-proxy、etcd、flannel
172.20.0.114node、kubectl、kube-proxy、flannel、etcd
172.20.0.115node、kubectl、kube-proxy、flannel、etcd

集群详情

  • OS:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.11.6.el7.x86_64
  • Kubernetes 1.6.0+(最低的版本要求是1.6)
  • Docker:建议使用 Docker CE,请勿使用 docker-1.13.1-84.git07f3374.el7.centos.x86_64 版本查看详情
  • 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启动即可)

安装前的准备

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

    直接使用yum install docker

  2. 关闭所有节点的SELinux

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

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

    临时方法 – 设置系统参数

    使用命令setenforce 0

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

  3. 准备harbor私有镜像仓库

    参考:https://github.com/vmware/harbor

步骤介绍

  1. 创建 TLS 证书和秘钥
  2. 创建kubeconfig 文件
  3. 创建高可用etcd集群
  4. 安装kubectl命令行工具
  5. 部署master节点
  6. 安装flannel网络插件
  7. 部署node节点
  8. 安装kubedns插件
  9. 安装dashboard插件
  10. 安装heapster插件
  11. 安装EFK插件

提醒

  1. 由于启用了 TLS 双向认证、RBAC 授权等严格的安全机制,建议从头开始部署,而不要从中间开始,否则可能会认证、授权等失败!
  2. 部署过程中需要有很多证书的操作,请大家耐心操作,不明白的操作可以参考本书中的其他章节的解释。
  3. 该部署操作仅是搭建成了一个可用 kubernetes 集群,而很多地方还需要进行优化,heapster 插件、EFK 插件不一定会用于真实的生产环境中,但是通过部署这些插件,可以让大家了解到如何部署应用到集群上。

注:本安装文档参考了 opsnull 跟我一步步部署 kubernetes 集群

-------------本文结束感谢您的阅读-------------