Add details for cloud images

This commit is contained in:
yeasy
2026-03-09 19:27:38 -07:00
parent 330e084e00
commit 89b0dc4425
5 changed files with 301 additions and 23 deletions

View File

@@ -100,6 +100,61 @@ kubectl apply -f service.yaml
kubectl get svc web-service
```
### 阿里云 Docker 镜像加速器配置
为了加快从阿里云镜像源拉取官方镜像的速度可以配置镜像加速器阿里云为容器服务 ACK 用户提供了免费的镜像加速服务
#### 获取加速器地址
登录阿里云容器镜像服务控制台 "镜像工具" > "镜像加速器" 中可获取个人的加速器地址类似于 `https://xxxxxx.mirror.aliyuncs.com`
#### Linux 系统配置
编辑或创建 `/etc/docker/daemon.json` 文件
```bash
sudo mkdir -p /etc/docker
sudo nano /etc/docker/daemon.json
```
添加或修改以下内容替换为你的加速器地址
```json
{
"registry-mirrors": [
"https://xxxxxx.mirror.aliyuncs.com"
]
}
```
重新加载并重启 Docker
```bash
sudo systemctl daemon-reload
sudo systemctl restart docker
```
验证配置生效
```bash
docker info | grep -A 5 "Registry Mirrors"
```
#### Windows/Mac 配置
Docker Desktop Settings
1. 进入 "Docker Engine" 标签
2. 编辑 JSON 配置添加 `registry-mirrors` 字段
3. 点击 "Apply & Restart"
#### 测试加速效果
```bash
# 从加速器拉取镜像(速度应该明显提升)
docker pull nginx:latest
time docker pull alpine:latest
```
### 阿里云容器镜像服务 (ACR)
阿里云容器镜像服务 (ACR, Container Registry) 是企业级的容器镜像存储和分发平台
@@ -111,25 +166,105 @@ kubectl get svc web-service
- **集成 ACK** ACK 无缝集成自动身份认证
- **镜像版本管理**标签管理镜像过期清理保留策略
#### 使用示例
#### 完整推送/拉取示例
```bash
# 登录阿里云镜像服务
docker login registry.cn-hangzhou.aliyuncs.com -u <username>
# 登录阿里云镜像仓库(使用 Docker 登录)
# 使用阿里云账户 ID 和 RAM 访问密钥或密码
docker login registry.cn-hangzhou.aliyuncs.com \
--username=<阿里云账户ID>
# 标记镜像
docker tag my-app:latest registry.cn-hangzhou.aliyuncs.com/myapp/my-app:v1.0
# 拉取阿里云公开镜像
docker pull registry.cn-hangzhou.aliyuncs.com/library/nginx:latest
# 推送镜像
# 构建本地镜像
docker build -t my-app:v1.0 .
# 标记镜像为阿里云仓库地址
docker tag my-app:v1.0 \
registry.cn-hangzhou.aliyuncs.com/myapp/my-app:v1.0
# 推送镜像到阿里云 ACR
docker push registry.cn-hangzhou.aliyuncs.com/myapp/my-app:v1.0
# 在 ACK 集群使用镜像
kubectl set image deployment/web-server web=registry.cn-hangzhou.aliyuncs.com/myapp/web:v2.0
# 在 Dockerfile 中使用 ACR 镜像
FROM registry.cn-hangzhou.aliyuncs.com/myapp/my-app:v1.0
COPY . /app
RUN echo "已成功使用阿里云镜像"
```
#### ACK 集群中使用 ACR 镜像
ACK 集群中需要先配置镜像拉取凭证Secret然后在 Deployment 中引用
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-server
namespace: default
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
# 如果是私有镜像,需配置镜像拉取凭证
imagePullSecrets:
- name: acr-secret
containers:
- name: web
image: registry.cn-hangzhou.aliyuncs.com/myapp/web:v2.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
affinity:
# 配置 Pod 反亲和性,分散到不同节点
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app
operator: In
values:
- web
topologyKey: kubernetes.io/hostname
```
#### 创建镜像拉取凭证
ACK 集群中创建 Secret用于拉取私有镜像
```bash
# 创建镜像拉取 Secret
kubectl create secret docker-registry acr-secret \
--docker-server=registry.cn-hangzhou.aliyuncs.com \
--docker-username=<阿里云账户ID> \
--docker-password=<RAM访问密钥或密码> \
--docker-email=<邮箱地址>
# 查看创建的 Secret
kubectl get secret acr-secret
kubectl describe secret acr-secret
```
#### ACR 优势
- ACK 集群中无需额外配置认证自动使用 ACR 镜像
- 支持 Helm Chart 存储和版本管理
- 提供图形化镜像仓库管理界面
- ACK 集群中与镜像仓库无缝集成简化身份认证
- 支持 Helm Chart 存储和版本管理方便应用交付
- 提供完整的图形化镜像仓库管理界面
- 完整的审计日志和操作追踪功能
- 支持镜像自动扫描和漏洞报告