构建企业级Kubernetes平台,你需要的工具都在这里!

网友投稿 646 2022-10-13

构建企业级Kubernetes平台,你需要的工具都在这里!

Kubernetes已经成为业界公认的容器编排事实标准,它几乎无所不在。现在已经很难遇到一个从未了解Kubernetes这一技术的IT从业者。软件开发、测试以及基础设施都在其“业务范围”内。

在创建一个生产就绪的Kubernetes平台之前,你需要准备好将应用程序从传统环境中迁移出来,而这绝不是一项简单的任务。你需要一个etcd数据库、kube-controller、kube-scheduler、证书、core-DNS等。它还要投入资源和时间来调研以确定合适的组件组合以及可靠、自适应的测试方法以便在交换或增强组件时可以快速更改。

图2 容器环境设计

管理和自动化

Rancher是一个开源的企业级Kubernetes管理平台,为企业用户提供Kubernetes-as-a-Service (Kubernetes即服务),它简洁直观的界面风格及操作体验,极大程度解决了业界遗留已久的Kubernetes原生UI易用性不佳以及学习曲线陡峭的问题。通过使用Rancher,你可以远离手动创建Kubernetes集群的痛苦并且可以一键自动设置集群。它还提供一套K8s集群所需的功能集,包括配置、访问控制、全局DNS、灾备和恢复、监控、日志以及集群升级。使用Ansible将可以为K8s节点配置 CentOS VMs。

日志和监控

Rancher具有内置的FluentD部署,可用于构建EFK堆栈。可以将每个集群配置为把FluentD日志推送到Elasticsearch实例。

Kibana是一个开源的可视化平台,可以极为方便地查看和搜索Elasticsearch日志。

Elasticsearch Github repo:

Prometheus是一个收集监控指标的优质方案,Prometheus server可用于存储时间序列数据,alert-manager可用于管理告警,node-exporter可从节点导出指标,Kube-state-metrics可以为所有k8s对象生成指标。

Prometheus Github repo:

然而,Prometheus缺少用户界面,因此需要Grafana,这是一个数据可视化工具。它能够连接到Prometheus server,提供监控用的图表和dashboard。

Grafana Github repo:

(Kubernetes即服务),它简洁直观的界面风格及操作体验,极大程度解决了业界遗留已久的Kubernetes原生UI易用性不佳以及学习曲线陡峭的问题。通过使用Rancher,你可以远离手动创建Kubernetes集群的痛苦并且可以一键自动设置集群。它还提供一套K8s集群所需的功能集,包括配置、访问控制、全局DNS、灾备和恢复、监控、日志以及集群升级。使用Ansible将可以为K8s节点配置 CentOS VMs。

日志和监控

Rancher具有内置的FluentD部署,可用于构建EFK堆栈。可以将每个集群配置为把FluentD日志推送到Elasticsearch实例。

Kibana是一个开源的可视化平台,可以极为方便地查看和搜索Elasticsearch日志。

Elasticsearch Github repo:

Prometheus是一个收集监控指标的优质方案,Prometheus server可用于存储时间序列数据,alert-manager可用于管理告警,node-exporter可从节点导出指标,Kube-state-metrics可以为所有k8s对象生成指标。

Prometheus Github repo:

然而,Prometheus缺少用户界面,因此需要Grafana,这是一个数据可视化工具。它能够连接到Prometheus server,提供监控用的图表和dashboard。

Grafana Github repo:

chart部署Portworx:

chart 部署 Neuvector:

Networks可以提供软件定义的负载均衡器,它有一个控制平面和一个服务平面。这一负载均衡器提供负载均衡、流量管理、弹性伸缩以及端到端的自动化K8S服务。AVI在K8S云上将服务引擎部署为PODS,它可以处理南北流量(即客户端和服务器之间的流量),以及K8S服务的负载均衡。

每次在K8S云中创建ingress时,AVI都配置了DNS服务器和IPAM池,可以自动创建虚拟服务。它将从IPAM分配一个IP,创建一个DNS入口并且配置后端的pod池。AVI同时能够通过ingress的注释添加各种HTTP策略以及网络安全策略的功能。

CI/CD工具

由于所有东西及其依赖项都被打包到容器中,因此Kubernetes可以使得持续部署成为现实,它还能从特定的工作节点中调度工作负载。而滚动更新策略可以零停机执行持续部署。

Jenkins是一个十分出色的持续集成和镜像构建的工具,它提供与Gitlab、Nexus、JFrog artifactory、SonarQube、Neuvector、Fority、Helm和Rancher进行进行集成,以构成一个完整的CI/CD 流水线。

图3 容器组件

总而言之,现在有很多方法可以帮助构建Kubernetes平台,将应用程序部署在K8S集群中变得比以往任何时候都更容易。我希望这能让你更好地了解需要关注的领域以及知道哪些工具或平台能够让K8S集群在企业中成为现实。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 超详细讲解hashCode方法
下一篇:Kubernetes身份认证和授权操作全攻略:访问控制之Service Account
相关文章

 发表评论

暂时没有评论,来抢沙发吧~