k8s-ocp-yaml
  • 简介
  • 微软云 Azure
    • 2022-10-18-Azure Portal创建k8s集群
    • 2022-10-30-Azure容器镜像仓库
    • 2023-03-08-基于Policy实现tag批量分配与继承
    • 2023-02-24-Terraform 安装与简单demo
    • 2023-03-10-Terraform 创建 private AKS
    • 2023-03-22-Terraform 离线环境使用
    • 2023-03-24-Terraform 踩坑记1-InternalOperationError
  • yaml文件书写注意项
    • 2018-05-29-yaml文件来源
    • 2018-05-29-多资源对象写法
  • kubernetes docs
    • 2020-04-24-kubectl-debug插件及openshift debug模式
    • 2020-04-23-k8s 利用subpathexpr处理日志落盘
    • 2020-04-14-metrics-server 轻量级监控
    • 2020-03-31-helm3 全新版本带来了什么
    • 2019-07-27-k8s openshift troubleshooting故障诊断
    • 2020-02-17-k8s CIS benchmark 安全基准测试
    • 2019-10-14-kubernetes 1.16 单机版在线安装
    • 2019-04-19-kubernetes 1.14 离线安装
    • 2018-11-20-kubernetes dashboard 免密登陆
    • 2018-04-07-kubernetes1.10 install offline
    • 2018-04-02-kubernetes1.9 install online
    • 2018-04-04-kubernetes1.9 HA install online
    • 2018-05-02-helm2 install
  • openshift docs
    • 2021-05-17-podman添加开机自启
    • 2020-06-23-openshift4.4 在线安装(包含allinone)静态ip
    • 2020-02-25-openshift 4.3 离线安装--DHCP方式
    • 2020-03-18-openshift4 operatorhub 离线部署
    • 2019-07-02-openshift origin 3.11 在线安装
    • 2019-09-24-openshift 对接AD域作为用户系统
    • 2019-11-13-openshift jenkins slave pod 自定义模板
  • 应用(deployment,rc,rs,volume,readiness,liveness)
    • 2018-05-31-deployment,rc,rs控制器
    • 2018-05-31-volume 容器存储
    • 2018-07-05-liveness readiness 健康检查
  • Openshift独有resource
    • 2019-08-08-template模板解读
  • docker相关文档
    • 2017-08-10-dockerfile 书写注意
    • 2017-08-10-dockerfile examples
    • 2017-07-19-dockerfile 命令
  • 容器云监控prometheus
    • 2019-10-22-安装部署与监控ingress-controller
    • 2020-05-30-组件功能介绍与监控数据来源
  • 中间件
    • 2020-03-30-kafka的安装与开启ACL权限控制
  • others
    • 2020-06-06-树莓派安装docker环境
  • Last part without title
Powered by GitBook
On this page
  1. 微软云 Azure

2022-10-30-Azure容器镜像仓库

Previous2022-10-18-Azure Portal创建k8s集群Next2023-03-08-基于Policy实现tag批量分配与继承

Last updated 2 years ago

测试环境:azure global (国内azure个人无法注册)

在微软云Azure上使用Kubernetes必然离不开镜像仓库,Azure也提供了开箱即用的镜像仓库(国内azure环境叫容器注册表)。

创建容器镜像仓库

名称: 在 Azure 中必须是唯一的,并且需包含 5-50 个 字母 数字,不支持符号。 Availability zones:多可可用区支持,在一个region下多个可用区复制仓库副本,和VM的有点类似,不过没法选在几个 zone 中实现高可用。只有SKU 为 premium 的时候才支持开启。 SKU:Basic/Standard/Premium 有三个sku可选

规格对比 https://learn.microsoft.com/en-us/azure/container-registry/container-registry-skus

价格表 https://azure.microsoft.com/en-us/pricing/details/container-registry/

各种规格容量收费是一致的,差的是日租费,差的也不多,企业用肯定选premium了

Networking: Public access/Private access 您可以通过公共IP地址公开地连接到这个注册中心,也可以使用私有端点私有地连接到这个注册中心。虚拟网络上的客户端和注册中心的私有端点之间的网络流量穿过虚拟网络和Microsoft骨干网上的私有链接,消除了对公共internet的暴露。私有链接还支持通过Azure ExpressRoute私有对等体或VPN网关从内部访问私有注册表。企业环境建议采用后者。

Private access (Recommended) is only available for Premium SKU.

Encryption: Customer-Managed Key Azure 容器注册表服务加密可保护静态数据。将映像和其他项目推送到注册表时,Azure 容器注册表对它们进行加密,并在你拉取它们时自动进行解密。 默认情况下,容器注册表中的数据是加密的。你可选择为 Azure 容器注册表加密提供自己的密钥。

客户管理的密钥提供在 Azure Key Vault 中创建自己的密钥所需的所有权。 启用客户管理的密钥时,可以管理其轮换、控制其使用的访问权限和权限,以及审核其使用情况。

主要功能包括: 法规符合性:Azure 使用 服务管理的密钥自动加密静态注册表内容,但客户管理的密钥加密可帮助你满足法规合规性准则。 与 Azure Key Vault 集成:客户管理的密钥通过与 Azure Key Vault 集成来支持服务器端加密。 使用客户管理的密钥,可以创建自己的加密密钥并将其存储在密钥保管库中。 或者,可以使用 Azure Key Vault API 来生成密钥。 关键生命周期管理:将客户管理的密钥与 Azure Key Vault 集成,可让你完全控制和负责密钥生命周期,包括轮换和管理。

Customer-Managed Key is only available for Premium SKU. 企业环境建议开启

注意: 目前只能在创建注册表时启用客户管理的密钥。 对注册表启用客户管理的密钥后,无法禁用加密。

上传镜像

如果从公网登录,先在 networking -- public access 中 enable all networks 或者放行自己的网段

az login
az acr login --name registrycn
或者
docker login registrycn.azurecr.io
(用户密码在Access Key中开启 Admin user 即可获取)

实际操作一下

[root@alicentos ~]# az acr login --name registrycn
Login Succeeded

# 先从公网下载个nginx
[root@alicentos ~]# docker pull docker.io/nginx:1.14
Trying to pull repository docker.io/library/nginx ... 
1.14: Pulling from docker.io/library/nginx
27833a3ba0a5: Pull complete 
0f23e58bd0b7: Pull complete 
8ca774778e85: Pull complete 
Digest: sha256:f7988fb6c02e0ce69257d9bd9cf37ae20a60f1df7563c3a2a6abe24160306b8d
Status: Downloaded newer image for docker.io/nginx:1.14
 
# 改成我的镜像仓库地址,然后push
[root@alicentos ~]# docker tag docker.io/nginx:1.14 registrycn.azurecr.io/middleware/nginx:1.14
[root@alicentos ~]# docker push registrycn.azurecr.io/middleware/nginx:1.14
The push refers to a repository [registrycn.azurecr.io/middleware/nginx]
82ae01d5004e: Pushed 
b8f18c3b860b: Pushed 
5dacd731af1b: Pushed 
1.14: digest: sha256:706446e9c6667c0880d5da3f39c09a6c7d2114f5a5d6b74a2fafd24ae30d2078 size: 948

或者使用import命令从其他仓库同步镜像过来

az acr import  --name registrycn --source docker.io/library/tomcat:8.5 --image middleware/tomcat:8.5

欢迎关注我的github https://github.com/cai11745/hybrid-cloud

参考链接

官网:https://learn.microsoft.com/zh-cn/training/modules/build-and-store-container-images/2-deploy-azure-container-registry

Availability zones、Geo-replication、Private link with private endpoints 这些企业级场景,只有premium才支持。所以个人测试环境就Basic,企业环境Premium

acr-create-1
acr-price-1
acr-price-2
acr-create-2-networking
acr-create-2-encryption
acr-registry-images
acr-service-tier