基于K8S的容器云平台如何部署微服务?
• Openshift产品推荐通过NodePort类型的Service为某个应用对外暴露一个服务端口。NodePort类型的Service会在集群中的所有节点上监听一个特定的端口,访问任意一个计算机节点的端口,即可访问内部容器中的服务。在集群的所有节点的这个端口都会预留给该应用所用。 • 在F5 VS的Pool Member中配置所有节点,通过Keepalived来实现HA • 应用系统和用户不用改变现有的访问方式 -应用访问及防火墙 内网计算节点可以直接访问数据库 DMZ区计算节点访问数据库有2种方案: • 计算节点直接通过内网防火墙访问该应用数据库 内网防火墙仅开通应用所在节点访问内部数据库的端口,例如本期项目,xxx应用仅使用2个节点,则防火墙仅开通这2个节点访问xxx数据库的权限 • 计算节点经Outbound 路由通过内网防火墙访问内网数据o 这oOutbound路由在Openshift中称之为Egress Routero 因此,内网防火墙仅开通应用所在节点访问内部数据库的端口,例如,应用A仅通过路由节点A和B访问内部数据库,则防火墙仅开通这2个节点访问A数据库的权限 Q2: 容器平台建设过程中,如何利用好已有云平台,从技术、架构等层次,需要注意哪些事项? A2: 容器跑在物理机上,还是跑在云平台虚机上,这是个值得讨论的话题。 对于公有云而言,毫无疑问,肯定是跑在云主机上的。那么,有的客户在上线容器微服务之前,已经有了自己的私有云平台,那么这个时候是购买一堆物理机来另起炉灶,还是基于已有云平台快速部署,这就值得斟酌了。 其实也没什么好纠结的,无非就是一个问题:性能! 跑在物理机上,性能肯定是最佳的,但是你真的需要所谓的性能吗?测过没有,是否真的只有物理机才能满足你的容器微服务应用,根据我的经验,以金融行业来说,大部分用户物理机资源常年处于低负荷状态!以性能为借口,恶意拉动GDP,就是耍流氓啊! 如果你决定跑在已有云平台上,那么,你要考虑的问题如下: 1、充分利用LaC(Infrastructure as Code)实现自动化编排部署,这是云平台最大的优势(比如openstack中的heat),也是裸机集群最大的劣势; 2、网络性能。在IaaS层上面跑容器,网络是个需要认真考虑的问题,calico最佳,但是基础设施改动大,不是所有客户都能接收,flannel+hostgw是个不做选择,原则就是尽量防止二次封装叠加,致使网络性能下降过多。 3、架构上具备后续扩展性,这里指的不仅仅是scale-out扩展,更是功能上的向后扩展,比如随着微服务不多扩大,网络负载不断增加,后续你可能会打算使用service mesh,那么前期就靠考虑清楚兼容性问题 4、最后,也是最朴素的一点,简单、好用、高可用原则,不要为了高大上而“高大上”,搞得自己完全hold不住,得不偿失,一个好的平台选型就是成功的80% 除此之外 1.需要看已有云平台提供了哪些功能或接口可以供 容器平台使用,比如CMDB、比如权限管理、比如应用或者中间件配置等 2.应用 以 容器方式和传统方式 的部署方式和流程 看是否可以抽象统一化,不管是升级回滚扩容等,在运维层面行为一致就能利用已有平台但是自己要实现底层与编排系统的对接 Q3: K8S集群如何实现集群安全?双向认证or简单认证? A3: Kubernets系统提供了三种认证方式:CA认证、Token认证和Base认证。安全功能是一把双刃剑,它保护系统不被攻击,但是也带来额外的性能损耗。集群内的各组件访问API Server时,由于它们与API Server同时处于同一局域网内,所以建议用非安全的方式访问API Server,效率更高。 -双向认证配置 双向认证方式是最为严格和安全的集群安全配置方式,主要配置流程如下: 1)生成根证书、API Server服务端证书、服务端私钥、各个组件所用的客户端证书和客户端私钥。 2)修改Kubernetts各个服务进程的启动参数,启用双向认证模式。 -简单认证配置 除了双向认证方式,Kubernets也提供了基于Token和HTTP Base的简单认证方式。通信方仍然采用HTTPS,但不使用数字证书。 采用基于Token和HTTP Base的简单认证方式时,API Server对外暴露HTTPS端口,客户端提供Token或用户名、密码来完成认证过程。 不仅仅是API层面,还有每个节点kubelet和应用运行时的安全,可以看下这里 https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/ K8S的认证相对来说还是个比较复杂的过程,如下这篇文章,详细介绍了K8S中的认证及其原理: https://www.kubernetes.org.cn/4061.html Q4: K8S在容器云上的负载均衡策略和总体思想是什么? A4: 高可用主要分为如下几个: -外部镜像仓库高可用 外部镜像仓库独立于OCP平台之外,用于存储平台构建过程中所使用的系统组件镜像。因为外部无法直接访问OCP平台的内部镜像仓库,所以由QA环境CD推送到生产环境的镜像也是先复制到外部镜像仓库,再由平台导入至内部镜像仓库。 (编辑:核心网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |