共计 3117 个字符,预计需要花费 8 分钟才能阅读完成。
文 / 云原生 SIG
01 背景
随着云原生的蓬勃发展,越来越多的企业在本人的生产或者测试环境应用云原生技术,而容器镜像正是云原生技术中利用的理论运行环境。一个好的容器运行环境即容器镜像会真正关系到利用的体验、演进和保护。那么抉择一个好的容器镜像须要思考哪些方面呢?具体如下:
- 长期的反对与保护:容器镜像提供的环境是分层的,企业容器利用往往是在一些根底镜像 (base image) 之上构建本人的利用镜像,而根底镜像提供了利用中所依赖的库、软件包等。对根底镜像上软件包的保护更新、问题修复、新性能反对等,是咱们构建一个好的、牢靠的、稳固的利用镜像的必要条件。
- 平安:企业应用的生产往往是开发人员将本人的利用与第三方利用 (包含根底容器镜像) 通过构建打包成可部署的制品内容,而后利用到生产环境中,这个过程暗藏着两个平安诉求:
- 须要保障所应用的容器镜像的安全性。
- 须要保障在整个软件生命周期中,软件包的源头以及制品的完整性、可追溯性证实也就成了平安的关键环节。
- 性能 / 最佳实际:以后很多用户应用的容器镜像都仅仅是提供了通用的应用环境,针对各类场景短少性能优化、短少最佳实际计划,那么是否为用户提供优化的容器镜像、为场景提供最佳实际的容器镜像计划就成为很多用户思考的方面。
基于下面的用户诉求,龙蜥云原生容器镜像(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/Alinux:C++、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/dock…。
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.6
docker 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/of…
相干链接:
云原生容器镜像列表:https://openanolis.cn/sig/clo…
阿里云 ACR 制品核心:https://cr.console.aliyun.com…
龙蜥云原生 SIG 主页:https://openanolis.cn/sig/clo…
—— 完 ——