DevOps云原生应用:在centos上部署kubernetes集群

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps云原生应用:在centos上部署kubernetes集群相关的知识,希望对你有一定的参考价值。

本系列文档介绍使用二进制部署最新 kubernetes v1.14.2 集群的所有步骤,而不是使用 kubeadm 等自动化方式来部署集群。本文档主要适合于那些有一定 kubernetes 基础,想通过一步步部署的方式来学习和了解系统配置、运行原理的人。

环境信息

  • OS 系统: Centos7.6 ( core )

  • kubernetes版本:v1.14.2

  • ETCD数据库:v3.3.13

  • Network插件:Flanneld 0.11.0

  • Docker 版本: 18.09.6-ce

  • K8s插件:CoreDns,Heapster,Influxdb,Grafana,Dashboard,Efk,Metrics-server

  • Docker仓库:Harbor

架构概览:


其中master节点中kube-apiserverjiy基于hapr

组件访问策略

kube-apiserver:

  • 基于Keepalived+ Haproxy 四层透明代理实现高可用;

  • 开启非安全端口 8080 和关闭匿名访问,基于token访问;

  • 在安全端口 6443 接收 https 请求;

  • 严格的认证和授权策略 (x509、token、RBAC);

  • 开启 bootstrap token 认证,支持 kubelet TLS bootstrapping;

  • 使用 https 访问 kubelet、etcd,加密通信;

kube-controller-manager:

  • 3 节点高可用;

  • 开启安全端口,在安全端口 10252 接收 https 请求;

  • 使用 kubeconfig 访问 apiserver 的安全端口;

  • 自动 approve kubelet 证书签名请求 (CSR),证书过期后自动轮转;

  • 各 controller 使用自己的 ServiceAccount 访问 apiserver;

kube-scheduler:

  • 3 节点高可用;
  • 使用 kubeconfig 访问 apiserver 的安全端口;

kubelet:

  • 使用 kubeadm 动态创建 bootstrap token,而不是在 apiserver 中静态配置;
  • 使用 TLS bootstrap 机制自动生成 client 和 server 证书,过期后自动轮转;
  • 在 KubeletConfiguration 类型的 JSON 文件配置主要参数;
  • 关闭只读端口,在安全端口 10250 接收 https 请求,对请求进行认证和授权,拒绝匿名访问和非授权访问;
  • 使用 kubeconfig 访问 apiserver 的安全端口;

kube-proxy:

  • 使用 kubeconfig 访问 apiserver 的安全端口;
  • 在 KubeProxyConfiguration 类型的 JSON 文件配置主要参数;
  • 使用 ipvs 代理模式;

以上是关于DevOps云原生应用:在centos上部署kubernetes集群的主要内容,如果未能解决你的问题,请参考以下文章

[云原生专题-60]:Kubesphere云治理-DevOps-自动化开发与自动化上云部署流程概述

云原生微服务容器DevOps概念扫盲!

[云原生专题-63]:Kubesphere云治理-DevOps-微服务自动上云部署的pipeline全部流程和详细步骤

云原生存储工具的选型和应用探讨

开源在云原生DevOps中的演变

云原生应用的10大关键属性