You need to enable JavaScript to run this app.
导航
机密容器服务
最近更新时间:2025.06.13 14:28:42首次发布时间:2025.01.10 20:58:29
我的收藏
有用
有用
无用
无用

概述

机密容器服务(Jeddak Confidential Kubernetes,JCK)是一套基于可信执行环境(TEE)实现的容器管理服务,旨在保证用户容器服务在云上的安全性。
Image

准备工作

  • skopeo软件
    • 使用官方容器镜像:quay.io/skopeo/stable:latest
  • keyprovider软件
wget https://jck-components.tos-cn-beijing.volces.com/runc/keyprovider/tks-keyprovider
chmod +x tks-keyprovider
  • 本地已有加密密钥(如secret-key.bin),需通过外部导入方式托管到TKS中。

加密镜像

  • 对加密密钥编码为Hex格式
cat secret-key.bin | xxd -p -c 10000 > image-encrypt-key.txt
# 示例:ed362e88bf94f2746f60d40fe34ef2ad892e4381d1c11d4e00f8bde9d7af8750
  • 创建密钥说明文件wrap-key.json,格式如下。
{
    "AppID": "test-accont",  #火山引擎账户ID
    "RingID": "8a5b796d-f594-4d68-ae7a-c1c1f41a1a88",   #密钥环ID
    "KeyID": "b257e194-439b-49a3-bff8-3f7258e87ef1",    #密钥ID
    "Key": "ed362e88bf94f2746f60d40fe34ef2ad892e4381d1c11d4e00f8bde9d7af8750"    #Hex格式的密钥
}
  • 准备镜像加密配置文件
cat << EOF > ocicrypt.conf
{
    "key-providers": {
        "tks-keyprovider": {
            "cmd": {
                "path": "/workspace$(pwd)/tks-keyprovider",
                "args": ["--wrap", "/workspace$(pwd)/wrap-key.json"]
            }
        }
    }
}
EOF
  • 构建执行脚本
cat << EOF > skopeo.sh
#!/bin/bash

docker run --rm -it --net=host \\
    -e OCICRYPT_KEYPROVIDER_CONFIG=/workspace/`pwd`/ocicrypt.conf \\
    -v `pwd`:/workspace/`pwd` \\
    -w /workspace/`pwd` \\
    quay.io/skopeo/stable \\
    "\$@"
EOF

chmod +x skopeo.sh
  • 拷贝私有镜像到本地
./skopeo.sh copy docker://<镜像地址> oci:image-plaintext
# 参考示例:
# ./skopeo.sh copy docker://quay.io/skopeo/stable:latest oci:image-plaintext
  • 本地加密镜像
./skopeo.sh copy \
    oci:image-plaintext \
    oci:image-encrypted \
    --encryption-key provider:tks-keyprovider

上传镜像

  • 获取火山镜像仓库用户名和密钥,将加密镜像上传至火山镜像仓库。

Image

Image

Image

./skopeo.sh copy \
    oci:image-encrypted \
    docker://<火山镜像仓库> \
    --dest-username=<仓库用户名> \
    --dest-password=<临时密钥>

# 参考示例
# ./skopeo.sh copy \
#     oci:image-encrypted \
#     docker://test-repo-cn-beijing.cr.volces.com/test-namespace/test-oci/dmeo:v1 \
#     --dest-username=test-account \
#     --dest-password=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6Ik5IRjc6NktBSzpDV...

上传成功后的镜像可通过基线管理服务托管镜像基线,并点击「镜像发布」创建机密容器服务。

创建机密容器

  1. 进入机密容器服务管理页面点击「创建机密容器」;
  2. 合法输入创建容器所需必填参数点「确定」提交执行,可在机密容器列表查看到创建成功的机密容器数据。
  1. 配置HPA(可选)

    详见 [附录1 AICC机密容器HPA配置说明](/docs/85010/1414787#462260db)
    
  2. 创建成功后可在列表查看机密容器运行状态、服务IP等信息;也可点击容器名称,进入容器详情,可查看更多信息。

终端服务绑定终端节点

说明

终端服务:是创建机密容器时自动创建的服务;
终端节点:需要用户手动创建的终端节点,并绑定终端服务。
效果
把机密容器作为后端服务绑定到终端节点上,即可通过终端节点访问机密容器。

  1. 在 机密容器管理列表页,复制【终端服务】名称,并点击「绑定」按钮,跳转到创建终端节点页面。
    Image
  2. 配置终端节点信息,完成终端服务与终端节点的绑定。
    Image
  • 网络配置-私有网络选择前置条件中建立的私有网络,并选择相应的可用区下的子网

  • 网络配置-安全组需要配置新的访问规则,放通最终访问机密容器服务所需的端口范围

  • 配置完毕,点击立即购买

附录1 AICC机密容器HPA配置说明

工作机理

HorizontalPodAutoscaler (HPA)会根据当前容器的负载情况,自动化地调整容器实例数量,以保持容器负载在预先定义的指标范围内。具体算法:

例如内存期望值为 100m

  • 如果当前指标值为 200m,则副本数将加倍, 因为 200.0÷100.0=2.0200.0÷100.0=2.0
  • 如果当前值为 50m,则副本数将减半, 因为 50.0÷100.0=0.550.0÷100.0=0.5

如果比率足够接近 1.0,在全局可配置的容差范围内(默认为 0.1), 则K8s会跳过扩缩操作。

说明

更多算法细节描述,请参考官方文档

配置说明

  1. 基本配置

配置项

参考值

含义

监控指标

CPU利用率

80%

CPU利用率期望值(需要配置CPU请求值)

内存利用率

80%

内存利用率期望值(需要配置内存请求值)

最小实例数

1

缩容时最少可接受的实例数量

最大实例数

10

扩容时最大可接受的实例数量

  1. 扩缩容策略

配置项

参考值

含义

扩缩容策略

扩容策略

触发自动扩容缩容事件后,执行的扩容、缩容策略

不勾选时,默认不启用改方向的策略

静默时间

1800

在容器指标波动时,防止因为容器实例的波动。HPA会根据[T-静默时间,T]时间窗口的指标平均值来判断是否需要扩缩容。(单位:秒)

策略

策略类型

容器组

在需要扩缩容时,容器变化单位

策略值

50%

  • 容器组:容器个数
  • 百分比:按照当前容器实例个数百分比

策略时间间隔

15

扩缩容策略生效时间(单位:秒)

配置示例

  • 在容器CPU负载大于/小于80%时,执行扩容/缩容、在容器内存负载大于/小于80%时,执行扩容/缩容
  • 允许最大扩容到10个容器实例,最小缩容到1个容器实例
  • 同时开启了扩容与缩容策略
    • 扩容:当目前容器负载超出指标值后,在15秒内增加4个容器实例
    • 缩容:当过去300秒的时间窗口中容器负载小于指标值,在15秒内减少当前实例个数100%的容器实例(由于设置最小实例数为1,因此不会全部删除,而会保留1个容器实例)