可靠、稳定、安全,龙蜥云原生容器镜像正式发布!

news/2024/7/10 20:45:50 标签: linux, 开源

文/云原生 SIG

01

背景

随着云原生的蓬勃发展,越来越多的企业在自己的生产或者测试环境使用云原生技术,而容器镜像正是云原生技术中应用的实际运行环境。一个好的容器运行环境即容器镜像会真正关系到应用的体验、演进和维护。那么选择一个好的容器镜像需要考虑哪些方面呢?具体如下:

1. 长期的支持与维护:容器镜像提供的环境是分层的,企业容器应用往往是在一些基础镜像(base image)之上构建自己的应用镜像,而基础镜像提供了应用中所依赖的库、软件包等。对基础镜像上软件包的维护更新、问题修复、新功能支持等,是我们构建一个好的、可靠的、稳定的应用镜像的必要条件。

2. 安全:企业应用的生产往往是开发人员将自己的应用与第三方应用(包括基础容器镜像)通过构建打包成可部署的制品内容,然后应用到生产环境中,这个过程隐藏着两个安全诉求:

  • 需要保证所使用的容器镜像的安全性。

  • 需要保证在整个软件生命周期中,软件包的源头以及制品的完整性、可追溯性证明也就成了安全的关键环节。

3. 性能/最佳实践:当前很多用户使用的容器镜像都仅仅是提供了通用的应用环境,针对各类场景缺少性能优化、缺少最佳实践方案,那么能否为用户提供优化的容器镜像、为场景提供最佳实践的容器镜像方案就成为很多用户考虑的方面。

基于上面的用户诉求,龙蜥云原生容器镜像(Anolis Container Image)应运而生。今天,很高兴地宣布龙蜥云原生容器镜像正式发布,同时也构建了部分镜像提供给社区用户进行下载,包括基础 base 镜像、基础语言镜像、基础应用镜像等(下载使用方法见下文)。

02

龙蜥云原生容器镜像

龙蜥云原生容器镜像旨在建设一个持续优化的、长期支持和维护的、安全可靠的容器镜像生态,为广大云原生用户、开发者和伙伴提供一个最佳云原生运行环境:

  • 社区维护能力。龙蜥社区基于不同 OS 版本都会维护基础软件 RPM 包,以及基础的语言、应用等软件包,可提供丰富的 base 镜像,并且会定期进行维护更新等,这些都保证了基于龙蜥软件包构建出来的容器镜像具有完整的生命周期管理能力。未来在社区会提供下面三类容器镜像能力:

  • Anolis Base Container Image:包括 Anolis 7、Anolis 8、Anolis 23、Alinux 2、Alinux 3 等 (Alinux 即 Alibaba Cloud Linux 的简称,是由阿里云操作系统团队以 Anolis OS 为基础构建的阿里云操作系统发行版。目前阿里云操作系统团队也将其贡献到了龙蜥社区云原生 SIG 的容器镜像生态中)。

  • Language Container Image Base Anolis/AlinuxC++、Java、Python、Nodejs、Go 等。

  • Application Container Image Base Anolis: nginx、postgres、redis、httpd、mongo、mysql 等。

  • 安全保证。社区主要有两方面保证,一是从容器镜像软件包来源上,社区会定期对镜像中软件包进行定期 CVE 修复,保证从源头上解决安全能力;二是从容器镜像完整性上,我们构建过程中会对镜像进行数字签名,这样 Release 的镜像都是带有签名加固,实际下载镜像的用户使用者可以进行验签。而相对于传统的签名方案,我们在云原生场景可以支持更加便捷的 Keyless Signatures 模式,可以更加友好、易用地进行加签和验签。

  • 性能最优。龙蜥社区有丰富的软件方案,其中 KeenTune 提供 AI 算法和专家知识库智能调优,我们在一些应用镜像中默认集成了 KeenTune,可以让业务运行在最优的环境中。

同时龙蜥云原生容器镜像面向开发者与伙伴提供了一站式的开发集成设施,从容器的构建平台到测试平台,再到分发平台等,可以帮助开发者低门槛贡献容器镜像。开发者只需要在社区代码仓库中提交对应镜像的 Dockerfile,社区基础设施可以完成完整的容器构建与测试、分发流程,代码仓库见下:https://gitee.com/anolis/docker-images/

03

当前进展与未来规划

目前我们已经构建了部分的镜像,并可以提供给社区用户进行下载,未来一年我们会提供更多的高频使用容器镜像,同时在下载的镜像中带有安全数字签名,初步路标如下图所示:

04

如何获取使用

当前我们在社区已经构建出了基础的 Anolis OS base 镜像,以及部分基础语言与应用的镜像,用户可以根据下表中列出的地址进行下载和使用(链接见文末),也欢迎大家在社区中提出建议和意见。

直接下载使用

举例如下:

Anolis 的 base 镜像:

docker pull registry.openanolis.cn/openanolis/anolisos:8.6   

基础语言镜像:

docker pull registry.openanolis.cn/openanolis/golang:1.19.4-8.6
docker pull registry.openanolis.cn/openanolis/python:3.11.1-8.6      

基础应用镜像:

docker pull registry.openanolis.cn/openanolis/mysql:8.0.30-8.6d
ocker pull registry.openanolis.cn/openanolis/redis:5.0.3-8.6      

作为 base 镜像使用

举例如下:

[root]# cat Dockerfile
FROM registry.openanolis.cn/openanolis/anolisos:8.6
RUN touch hello   
    [root]# docker build -t anolis-test . 
    Sending build context to Docker daemon  2.048kB 
    ​Step 1/2 : FROM registry.openanolis.cn/openanolis/anolisos:8.6 
    ​8.6: Pulling from openanolis/anolisos 
    ​719018114380: Pull complete 
    ​Digest: sha256:9395d241fc1a41a592773629994c3c0fa48886dd99c75431d7a885fb842753fa 
    ​Status: Downloaded newer image for registry.openanolis.cn/openanolis/anolisos:8.6 
    ​ ---> 6f8a2912d1d7 
    Step 2/2 : RUN touch hello 
     ---> Running in ca675e55ccb7 
    Removing intermediate container ca675e55ccb7 
     ---> 5b86728702bd 
    ​Successfully built 5b86728702bd 
    Successfully tagged anolis-test:latest 
     
    [root]# docker run --rm anolis-test ls hello 
    hello  

此外,我们也正在与阿里云容器服务团队进行合作,在阿里云 ACR 制品中心陆续上架龙蜥社区的容器镜像,大家可以直接查看阿里云 ACR 制品中心获取(链接见文末)。

团队招人啦:龙蜥云原生团队正在招聘中,欢迎大家一起加入龙蜥云原生,共建云原生社区生态,招聘链接:

https://talent.alibaba.com/off-campus/position-detail?lang=zh&positionId=922335

相关链接:

云原生容器镜像列表:

https://openanolis.cn/sig/cloud-native/doc/710522280708245266

阿里云 ACR 制品中心:

https://cr.console.aliyun.com/cn-hangzhou/instances/artifact

龙蜥云原生 SIG 主页:

https://openanolis.cn/sig/cloud-native

—— 完 ——


http://www.niftyadmin.cn/n/71212.html

相关文章

数字化项目管理如何推动项目快速上市?【洞见6】

AIGC时代的到来,标志着互联网从信息化的轻工业时代正式进入了互联网数字化的重工业时代。随之迎来的是人工智能技术的广泛引用,如何在项目管理中应用也是一个挑战,因为的项目本身的特点就是变化、复杂。笔者在为了进行突破,开始不…

PDF怎么转换成Word?两种PDF免费转Word方法推荐

不知道你们有没有发现,我们在网上下载的很多资料都是PDF格式的,尽管PDF文件也可以通过专门的PDF编辑器来编辑,但是PDF文档作为版式文档,编辑起来还是存在很多局限性,所有当我们需要大量编辑修改文档的时候,…

使用CLion调试Redis源码的超详细步骤

因为我本人主要是写Java的,有强烈的IDE依赖症,不喜欢使用文本编辑器或者命令行这样的工具,所以选择使用CLion搭建一个IDE环境来辅助阅读。但是CLion主要支持的是CMake管理的项目,而Redis是用普通的Makefile管理的,所以…

NMEA协议详解

什么是NMEA协议NMEA协议的定义和作用NMEA协议是用于在全球定位系统(GPS)和其他导航设备和设备之间交换信息的标准协议。 NMEA协议定义了一组消息格式,这些消息可以传输有关GPS设备和传感器的信息,如位置、速度、时间和方位角。NME…

node编写C++扩展文件并引入到项目方案总结

插入模块通过Addon实现可扩展接口(可以将C插入到前端项目中)编写扩展文件编译扩展调用扩展参考在项目中引入本地模块1. 使用 npm install ../module12. 直接修改 package.json 字段,增加依赖3. 使用 install-local4. 使用 npm link5. 使用 require-rewrite6. 使用 p…

如何设置股票接口版交易软件的指标涨跌家数?

如何设置股票接口版交易软件指标涨跌家数?今天小编就以通达信为例给大家介绍一下,很多人其实不知道通达信里面有个很厉害的股票情绪的指标,叫做通达信涨跌家数,打开在通达信软件k线界面,然后输入880005就可以找到了。下…

Hadoop核心组成和生态系统简介

一、Hadoop的概念 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System)&am…

[Rust笔记] 为什么Rust英文文档普遍将【枚举值】记作variant而不是enum value?

为什么Rust英文文档普遍将【枚举值】记作variant而不是enum value?在阅读各类Rust英文技术资料时,你是否也曾经困惑过:为何每逢【枚举值】的概念出现时,作者都会以variant一词指代之?就字面含义而言,enum v…