企业生产系统迁移至容器云平台的众多难题
该篇是twt论坛交流活动《企业生产系统迁移至容器云平台的网络及安全方案探讨—暨红帽容器化混合云解决方案在线发布活动》的总结。原文:http://www.talkwithtrend.com/Article/245665活动地址:http://www.talkwithtrend.com/activity/?id=1459
自从2013年Docker应用开源以来,容器技术飞速发展,它彻底改变了PaaS原先的发展轨迹。2014年Google发布的容器编排应用Kubernetes,经过5年的发展,更是已经成为了现代容器平台的事实标准,容器平台应用于生产环境也已经现实可落地。
与之前的虚拟技术相比,容器技术具有更快、更轻、更强的优势。
更快,体现在容器可以实现秒级启动。
更轻,体现在容器更加轻量,往往一个容器镜像只有几十兆,可以快速在主机之间迁移,而虚拟机镜像往往是几个G。
更强,体现在容器的性能更好。容器是直接调用硬件资源,不存在虚拟化层,所以它的性能接近于原生应用。
容器以应用为中心,能够快速地在各个平台下部署运行,可以很好地满足应用的快速部署。
但是容器运行时使用的是宿主机的内核,在同一台 ...
企业级容器云平台建设之资源管理
计算资源管理
多租户权限管理
多集群管理,及集群大小
资源配额与资源限制管理
NodePort端口号管理
网络资源管理
网络业务网、管理网、存储网分离
网卡做bond,提高网络可靠性
网络方案选型
网络策略NetworkPolicy机制
集群边界路由器管理(Ingress/Route)
集群DNS域名服务管理
存储资源管理
存储PV选型,动态/静态
存储类型,hostpath/local/NFS/Ceph/Solidfile等
镜像资源管理
镜像生命周期管理 ,创建/查询/更新/删除
镜像库多租户权限管理
远程复制管理,至少两级镜像库设置,总镜像库/子镜像库
镜像库操作审计管理
镜像漏洞安全扫描
镜像签名
补充说明在企业级容器平台建设中,资源管理只是其中的基础部分,另外还需要考虑:监控、告警、日志管理以及运维、安全、审计等方面。
来自:《Kubernetes权威指南:企业级容器云实战》
企业级容器平台OpenShift介绍
随着移动互联网生态的兴起,传统银行面临跨界竞争,在电子商务支付、消费金融、商业融资的新的业务场景下面临严峻的挑战,数字化转型的需求日益迫切。在这场技术转型的浪潮下,各大银行积极推进科技改革,拥抱云计算,以适应市场不断的变化。随着容器技术的成熟,一个以Kubernetes容器编排引擎为核心的生态圈已经形成,互联网、金融、汽车等各企业都积极投入容器技术的应用中。容器云平台的建设已经被认为是云计算落地的一种快捷的方式。说到容器云平台,就不得不提当前容器调度与编排的事实标准——Kubernetes。Kubernetes通过定义基础资源(容器、存储、网络)的协议接口,为底层基础设施提供了统一的管理方式。研发人员通过声明的方式定义资源编排文件,Kubernetes便通过自身组件自动完成资源的申请与分配,快速实现应用的部署。Kubernetes为容器的管理调度,应用的编排提供了便利,它无所不能,但是在建设企业级容器平台时,我们需要在以Kubernetes为核心的前提下,整合其他组件,例如网络插件、应用访问入口、存储实现、监控、日志、镜像仓库等。如图一所示。OpenShift正是基于Kubernete ...
使用ArgoCD实现多集群自动部署
什么是Argo CD?Argo CD是用于Kubernetes的声明性GitOps连续交付工具,其优势为:
通过声明式定义应用、配置及环境信息,并且可以通过代码仓库实现版本控制
可通过自动或手动的方式同步应用到配置的期望状态
支持应用在多个环境、多个Kubernetes集群进行统一部署和管理
有UI及CLI多种方式,UI提供应用状态的可观测性,CLI方便与其它持续集成系统对接
支持多种SSO(OIDC,OAuth2,LDAP,SAML 2.0,GitHub,GitLab,Microsoft,LinkedIn)
支持Prometheus监控指标
参考文章https://www.openshift.com/blog/openshift-authentication-integration-with-argocdhttps://www.openshift.com/blog/introduction-to-gitops-with-openshifthttps://argoproj.github.io/argo-cd/
使用Vagrant+Ansible一键部署Rancher2-0
Kubernetes的流行程度就不说了,前两天关注了另一个产品Rancher。使用它可以快速部署与接管Kubernetes。而且Rancher的部署非常简单,只需要跑一个容器就完事了。
既然这么简单,那我们就使用Vagrant与Ansible让它更简单。
安装Vagrant + VirtualBox
具体安装不表了,不是本文知识。相信大家多半都使用过,如果没有使用过,赶紧学习起来。
导入Vagrant Box。这里使用的是Centos 7.5
centos75-with-boxadditions.box下载链接: https://pan.baidu.com/s/1U-kJhbY2JirHgw0eP9TBXw 密码: 1a6b
1vagrant box add centos/75 centos75-with-boxadditions.box
或者安装vagrant插件
1$ vagrant plugin install vagrant-disksize vagrant-ignition vagrant-vbguest
定义Vagrantfile,设置好虚拟机的配置,具体的配 ...
利用Openshift中的cronjob-+-zalenium实现网站监控
背景介绍有一个网站(pf.apps.example.com),会获取主机的信息,但是主机信息的格式不统一,而且经常性会添加机器,但是信息又是不确定的,所以有时添加新机器会缺失字段,导致网站异常。
有两种解决方法,
优化代码,提高代码的兼容性,不致于导致页面无法显示。
严格规范字段的输入,必须保证字段的完整性。
不管哪种方法,我们都需要在页面出现故障时第一时间知道。这就要求编写代码自动监测网站相关页面的可用性,一旦出现问题,及时发邮件告知,第一时间恢复。
有使用到上篇介绍的zalenium Openshift部署zalenium(容器化的selenium)及Python自动测试
编写监控脚本监控脚本使用selenium控制浏览器,先模拟登录,再访问需要测试的页面,如果页面正常打开则正常,否则发邮件告警。(由于这个网站的每个页面都有id=content的一个div,所以通过检测页面中是否存在id=content的div来判断页面是否正常)monitor.py
123456789101112131415161718192021222324252627282 ...
基于容器技术构建一站式业务支撑平台——实现业务需求快速交付,应用稳定可靠运行
来自2020年全国职业容器云大赛冠军队二二一队作品。
兴业数金 二二一团队成员:潘晓华、方胜、全彬元、徐林、孙佳明
1 建设背景随着互联网的兴起,互联网企业依托互联网,特别是移动互联网为公众提供越来越多方便快捷、稳定高效的服务,对传统业务带来了很大冲击。作为应对,传统行业也在业务上不断创新,带来对IT基础设施和应用架构方面进行转型升级的要求。例如为了支撑电商促销活动对带来的高峰期海量支付请求,某银行很早就对支付渠道相关业务应用进行微服务架构改造,由此带来了容器技术的研究和运用。经多年实践证明,采用容器技术平台很好地支撑了新的业务模式和业务容量。
基于业务发展的需要,和快速进步的金融科技技术,越来越多的传统企业开始思考自身的互联网战略、上云规划等。其中重要内容之一,是希望从技术层面更有效地支持业务创新,如微服务架构、更好的灵活性、扩展性、高可用性、更高效的业务上线效率等,因此跟上云计算技术发展的趋势,建设并推广适合自身的基于容器技术的云平台是关键任务。
2 需求分析2.1 业务需求2.1.1 应用架构****改造需求某银行的客户交互渠道系统存在以下两点架构问题,制约了其快速迭代,影 ...
如何为运行OpenShift容器的数字用户设置用户名
OpenShift容器平台会使用一个不带用户名,数字类型的用户ID(如:10003000)来运行容器,但是有些情况下启动应用的用户必须有用户名,比如访问sftp服务。
解决思路:在容器中的/etc/passwd文件中添加对执行用户的相关配置::x:::<说明>::/sbin/nologin。
执行步骤
基础镜像中为/etc/passwd设置root组用户可写的权限1RUN chmod g=u /etc/passwd
应用启动时为用户设置用户名,要在ENTRYPOINT/CMD的脚本中添加如下代码123456789USER_NAME=${USER_NAME:-uidname}USER_ID=$(id -u)if ! whoami &> /dev/nullthen if [ -w /etc/passwd ] then echo "${USER_NAME}:x:${USER_ID}:0:${US ...
如何在Openshift中让Router-Pod独占Router节点
概念
什么是Router Pod?
Router Pod是Openshift中管理外部流量访问集群服务的重要的入口,它是通过一个haproxy的Pod实现的。由于Router Pod的独特性,几乎所有的流量都过Router中的Pod代理到真正的服务,所以它是一个非常非常重要的服务。
什么是Router节点
因为集群中的Router Pod数量是有限的,外部流量通过负载均衡器到达Router的Pod,所以对于Router Pod必须固定在负载均衡器下的节点上。这些运行Router Pod的节点,我们叫做Router节点。它有两个特点:
运行default/router的pod;
被外部负载均衡器监听
为什么需要让Router Pod独占Router节点上几乎所有的外部访问集群服务的流量都通过Router Pod代理,所以它是非常重要。在正式使用时,需要对它进行保护。让它独占节点,防止其它Pod抢占Router Pod的资源,以确保集群下服务的可用性。
具体实施Router Pod独占绑定Router节点
Router节点上添加label1oc label node ...
容器平台武林盟主争夺大战
容器技术是继虚拟化技术后又一革命性的后台技术,厂商为了争夺容器PaaS的话语权,必将发起一场声势浩大的战争。谁也没想到挑起这场革命性战争的竟然是一家仅3年的创业公司——dotCloud。
2013年前:大战前夕——一片祥和
虚拟化技术已经深入人心,以aws与openstack为主的云平台已经非常成熟。
PaaS理念也得到了普及,cloud foundry成为当时PaaS的标准
cloud foundry吸引了包括百度、京东、华为、IBM 等一大批国内外技术厂商,开启了以开源 PaaS 为核心构建平台层服务能力的变革。“PaaS 的时代就要来了!”
PaaS公司有:Cloud foundry、Heroku、Pivotal、Red Hat
PaaS 项目被大家接纳的一个主要原因,就是它提供了一种名叫“应用托管”的能力。
2013年容器武林大战——一鸣惊人
2013年3月:一家创业公司dotCloud开源了它的产品Docker,解决应用构建、分发与发布的问题,它的最大改进是引入了镜像构建。
Cloud Foundry 的首席产品经理 James Bayer 做了一次详细对比:Do ...