自学内容网 自学内容网

利用Kubespray安装生产环境的k8s集群-准备篇

背景介绍

什么类型的公司需要On-premises的k8s集群?

这里的On-premises不单指运行在本地机房裸金属服务器上的k8s集群,也包括部署在GCP/Azure/AWS等公有云的虚拟机上(非托管的EKS AKS等产品)的k8s集群。
什么类型的公司会选择自行部署k8s,而不采用成熟的公有云托管的Kubernetes ?大概很多金融 电信 政府机构 或者大企业但价格敏感客户或不想被厂商锁定的企业。
不可否认,运行大型的高可用的生产环境Kubernets集群是一个很艰巨的任务,和采用成熟的云上托管的Kubernets比,需要运维人员对Kubernets和额外的网络(BGP/路由/防火墙/策略/代理/网关)存储(物理存储服务器/文件系统/对象存储)安全(RBAC/LDAP/Auth2/容器扫描)和其他(如镜像的Registry/CICD)等都有较深入的理解和实践。
运维人员的成本可能比直接采用托管产品都要贵得多了,但是处于以上原因以及更可能的数据安全和合规考虑,还是有很多企业有自己的On-premises的Kubernets cluster。

部署高可用的On-premises的Kubernets集群的方案

Openshift

研究了下,对于高大上不差钱的企业,首选本地部署Kubernets(已经企业级的镜像Registery,安全增强,CICD等)的方案是RedHat的Openshift。
Openshift Container Platform(OCP,以OCP做关键词在加拿大的招聘网站可看到有加国全国性银行招聘专职OCP工程师)还有一个开源实现之前叫Openshift Origin,现在叫OKD(Original Kubernets Disribution)。 OKD和OCP的关系类似之前Centos和RHEL(就是OKD总是比OCP慢,OCP是OKD的上游)。
等我有机会,部署个10来台虚拟机,找个OKD来玩玩,然后再共享一篇攻略。

Kubespray

那对于小而美又需要On-premises的Kubernets企业,一款实质上是Ansible playbook的名叫Kubespray的工具可以用来部署生产环境的高可用的Kubernets。
今天我们就拿Kuberspray来玩一玩。
这个是项目的Github地址 和其官网

如何安装生产环境下的高可用k8s集群

安装前的知识储备

Ansible

Ansible是个不需要在被管理机上安装Agent的(Agentless),轻量的,通过SSH方案进行的配置管理软件。
Ansible Playbooks 是Ansible用来程式化的管理一系列配置的脚本。
为什么需要最好有Ansible的概念和使用经验,因为这款Kubespray说到底就是个Ansible Playbook。
Ansible Inventory是Ansible用来管理和配置被管理器服务器的文件。在本示例中,需要通过调整Inventory来告诉Ansible需要在哪些服务器上部署Kubernets,哪些是Master哪些是worker等等。

Kuberspray

如果有可能,你最好粗略的看一遍整个Kubespray的目录结构,里面主要的Concepts如果你不熟悉的话,最好去研究以下,知道个大概。比如什么是 Cert-Manager和ACME,以及Let’s Encrypt ?(Kubernets的证书管理相关的Plugin,通过配置文件参数调整来决定要不要和Kubernets集群一起安装)
本文主要介绍如何安装,如果你实在觉得弄懂Kuberspray的大概结构麻烦,可暂时忽略。

Kubernets Basic Concepts

这个也是,因为安装生产环境需要的Kubernets Cluster,有很多CNI/CRI/CSI以及各类Ingress,Load Balancer(metal-lb)等等需要你在安装时决定是不是要和主系统一起安装。
举个例子,你如何规划在你要安装的k8s集群里部署etcd? 是单点还是3个nodes的高可用? 是host下以systemd管理方式部署二进制包还是通过docker/container来部署? 这些需要你其实对Kubernets整个的结构,基本的各个资源的情况有个较清晰的认知的。
我也是一个从比较讨厌k8s,觉得它很重很无聊,到看到5折的CKA考试券就买了然后发现再有一个月就满一年要过期的人,然后花了个把月时间研究k8s到现在的。
当然,你也可以按我的文档先把一个较复杂的k8s集群搞起来,再慢慢研究。

未完待续


原文地址:https://blog.csdn.net/sinat_30893849/article/details/145273116

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!