何出此言?
横向比较,Openshift在全球IT圈内,Forrester最新的报告认为从技术表现和市场表现看,Openshift 3.10是业内最好的容器云平台。
纵向比较,Openshift 3的大版本中,第一个小版本发行版Openshift 3.0是在2015年上半年发布的;而Openshift 3.11,预计将是Openshift 3系列中的最后一个版本。
所以说,Openshift 3.11是集三年来Openshift3各个版本于大成者,不仅是Openshift3中最强的版本,也是全球企业容器平台最好的平台版本。
不说空话,看干货。
二、Openshift 3.11功能和性能
先看一下Openshift单集群最大配置,Openshit强于以往版本:
从功能上看,Openshift3.11发布了很多新的功能:
Feature | OCP 3.9 | OCP 3.10 | OCP 3.11 |
---|---|---|---|
Prometheus Cluster Monitoring | TP | TP | GA |
Local Storage Persistent Volumes | TP | TP | TP |
CRI-O for runtime pods | GA | GA* [a] | GA |
Tenant Driven Snapshotting | TP | TP | TP |
oc CLI Plug-ins | TP | TP | TP |
Service Catalog | GA | GA | GA |
Template Service Broker | GA | GA | GA |
OpenShift Automation Broker | GA | GA | GA |
Network Policy | GA | GA | GA |
Service Catalog Initial Experience | GA | GA | GA |
New Add Project Flow | GA | GA | GA |
Search Catalog | GA | GA | GA |
CFME Installer | GA | GA | GA |
Cron Jobs | GA | GA | GA |
Kubernetes Deployments | GA | GA | GA |
StatefulSets | GA | GA | GA |
Explicit Quota | GA | GA | GA |
Mount Options | GA | GA | |
System Containers for Docker, CRI-O | Dropped | - | - |
Installing from a System Container | GA | GA | GA |
Hawkular Agent | - | - | - |
Pod PreSets | - | - | - |
experimental-qos-reserved | TP | TP | TP |
Pod sysctls | TP | TP | TP |
Central Audit | GA | GA | GA |
Static IPs for External Project Traffic | GA | GA | GA |
Template Completion Detection | GA | GA | GA |
replicaSet | GA | GA | GA |
Mux | TP | TP | TP |
Clustered MongoDB Template | - | - | - |
Clustered MySQL Template | - | - | - |
Image Streams with Kubernetes Resources | GA | GA | GA |
Device Manager | TP | GA | GA |
Persistent Volume Resize | TP | TP | TP |
Huge Pages | TP | GA | GA |
CPU Manager | TP | GA | GA |
Device Plug-ins | TP | GA | GA |
syslog Output Plug-in for fluentd | TP | TP | TP |
Container Storage Interface (CSI) | - | TP | TP |
Persistent Volume (PV) Provisioning Using OpenStack Manila | - | TP | TP |
Node Problem Detector | - | TP | TP |
Protection of Local Ephemeral Storage | - | TP | TP |
Descheduler | - | TP | TP |
Podman | - | TP | TP |
Kuryr CNI Plug-in | - | TP | TP |
Sharing Control of the PID Namespace | - | TP | TP |
Cluster Administrator console | - | - | GA |
Cluster Autoscaling (AWS Only) | - | - | GA |
Operator Lifecycle Manager | - | - | TP |
Red Hat OpenShift Service Mesh | - | - | TP |
[a] Features marked with * indicate delivery in a z-stream patch. |
三、Openshift 3.11架构
在Openshift3.11之前,我们安装Openshift,有两个选择:
一是基于RHEL的rpm方式;
二是基于atomic的方式;
关于方式选择,我们大多数情况下会选择RHEL方式安装Openshift。
Atomic是一个Container OS。位列当年6大容器操作系统之一:
在容器化操作系统中,当年CoreOS应该是最受推崇的。而Atomic也经常会被拿到和CoreOS对比。Photon发布以后,很多VMware的客户也比较关注。一场大戏即将上演,甚至当年有人质疑CoreOS是否会对动摇RHEL在Linux界的霸主地位。
然后,历史的发展,总是出乎常人的预料,CoreOS在2018年初被红帽收购,三分归晋。
Openshift 3.11的安装,目前仍然无法直接安装到CoreOS上,但CoreOS的一些理念,已经在Openshift 3.11上有所体现。
在之前,(后续均指基于RHEL)Openshift有几个主程序:
atomic-openshift-master, atomic-openshift-node,通过他们来控制Openshift底层的相关守护进程。
在Openshift 3.11,之前底层架构架构的进程都已经容器化:
Master节点基础架构:
SDN相关组件也已经容器化:
而Web Console在3.10就已经实现了容器化,3.11未变:
以容器的方式来运行容器的基础架构,管理起来更加方便和统一。
四、Openshift的可维护性
首先看一下在我笔记本上部署的Openshift基础架构:
两个workstation的虚拟机,上面安装RHEL7.5.
安装完毕后的Pod列表:
为了进行充分测试,我安装的组件比较全。在生产环境,可以选择性地安装需要的组件,或最小化安装,只安装核心组件。
登录Openshift,在服务目录选择上,多了一个Cluster Console:
切换到Cluster Console:
首选看到的是整个集群的运行状态:
整个Openshift平台和应用的事件,也会被自动抽取,做展示到平台:
事件还可以选择类型:
可以选择种类:
接下来,我们看workload菜单,可以查看所有Openshift对象:
仅用Pods workoad子菜单举例:
可以选择不同项目的pod:
可以看到pod的如下状态:
接下来,看网络菜单,子选项如下:
我们仅以Networkpolicy举例,点击创建network policy:
界面非常友好:
并且有图形化示。一共是7种(篇幅有限,只列出4种)
还可以查看存储和构建,这里不展开说:
我们着重看一下监控:
看一下Dashboard:
Loging:
最重要的是,dashboard有很多插件:
在管理菜单,Openshift所有对象都可以被可视化管理:
项目:
所有的role:
Role绑定:
客户自定义的资源:
最后,还有一个重要的菜单:Operator。由于篇幅有限,这里不展开讨论,后续会有专门的文章深入研究。
以下5段Operator介绍的内容转载自(http://blog.51cto.com/12462495/2084517)
Operator是CoreOS布道的东西。CoreOS给社区出了几个开源的Operator,包括etcd,那么如何在这种情况下去扩容一个etcd集群? 首先可以以deployment的形式把etcd Operator部署到K8S中。部署完这个Operator之后,想要部署一个etcd的集群,其实很方便。因为不需要再去管理这个集群的配置信息了,你只要告诉我,你需要多少的节点,你需要什么版本的etcd,然后创建这样一个自定义的资源,Operator会监听你的需求,帮你创建出配置信息来。
Operator其实并不是一个工具,而是为了解决一个问题而存在的一个思路。什么问题?就是我们在管理应用时,会遇到无状态和有状态的应用。管理无状态的应用是相对来说比较简单的,但是有状态的应用则比较复杂。在Helm chart的stable仓库里面,很多数据库的chart其实是单节点的,因为分布式的数据库做起来会较为麻烦。 Operator的理念是希望注入领域知识,用软件管理复杂的应用。例如对于有状态应用来说,每一个东西都不一样,都可能需要你有专业的知识去处理。对于不同的数据库服务,扩容缩容以及备份等方式各有区别。能不能利用K8S便捷的特性去把这些复杂的东西简单化呢?这就是Operator想做的事情。
Operator的理念是希望注入领域知识,用软件管理复杂的应用。例如对于有状态应用来说,每一个东西都不一样,都可能需要你有专业的知识去处理。对于不同的数据库服务,扩容缩容以及备份等方式各有区别。能不能利用K8S便捷的特性去把这些复杂的东西简单化呢?这就是Operator想做的事情。 以无状态应用来说,把它做成一个Scale UP的话是比较简单的:扩充一下它的数量就行了。
目前,Operator已经包含到菜单中:
五、总结
综上所述,Openshift 3.11是Openshift3中最强的版本,也是业内最好的企业容器平台。
Openshift 3.11,你值得拥有。
参考文档:
http://blog.51cto.com/12462495/2084517 文中关于Openerator的描述。
魏新宇