首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
Kubernetes IP Masquerade Agent 用户指南
Kubernetes云管理控制器
Kubernetes安全地清空一个节点
Kubernetes保护集群
Kubernetes调试DNS问题
Kubernetes改变默认 StorageClass
Kubernetes更改PersistentVolume的回收策略
Kubernetes关键插件Pod的调度保证
Kubernetes静态加密Secret数据
Kubernetes开发云控制器管理器
Kubernetes控制节点上的CPU管理策略
Kubernetes控制节点上的拓扑管理策略
Kubernetes名字空间演练
Kubernetes配置API对象配额
启用/禁用 Kubernetes API
Kubernetes迁移多副本的控制面
Kubernetes升级集群
Kubernetes声明网络策略
Kubernetes使用CoreDNS进行服务发现
Kubernetes使用KMS驱动进行数据加密
使用Kubernetes API访问集群
Kubernetes使用NUMA感知的内存管理器
Kubernetes通过名字空间共享集群
Kubernetes通过配置文件设置Kubelet参数
为Kubernetes运行etcd集群
Kubernetes为节点发布扩展资源
Kubernetes限制存储使用量
Kubernetes验证已签名容器镜像
以非root用户身份运行Kubernetes节点组件
在Kubernetes集群中使用NodeLocal DNSCache
在Kubernetes集群中使用sysctl
Kubernetes在集群中使用级联删除
在运行中的集群上重新配置节点的 kubelet
Kubernetes自定义DNS服务
Kubernetes自动扩缩集群DNS服务
当前位置:
首页>>
技术小册>>
Kubernetes中文教程(五)
小册名称:Kubernetes中文教程(五)
这些说明适用于 Kubernetes 。 如果你想要检查其他版本的 Kubernetes 组件的完整性,请查看对应 Kubernetes 版本的文档。 你需要安装以下工具: - `cosign`([安装指南]) - `curl`(通常由你的操作系统提供) ## 验证二进制签名 Kubernetes 发布过程使用 cosign 的无密钥签名对所有二进制工件(压缩包、SPDX 文件、 独立的二进制文件)签名。 要验证一个特定的二进制文件,获取组件时要包含其签名和证书: ```bash URL=https://dl.k8s.io/release/v.0/bin/linux/amd64 BINARY=kubectl FILES=( "$BINARY" "$BINARY.sig" "$BINARY.cert" ) for FILE in "${FILES[@]}"; do curl -sSfL --retry 3 --retry-delay 3 "$URL/$FILE" -o "$FILE" done ``` 然后使用 `cosign` 验证二进制文件: ```shell cosign verify-blob "$BINARY" --signature "$BINARY".sig --certificate "$BINARY".cert ``` cosign 自 v1.9.0 版本开始才能使用 `--certificate` 标志,旧版本的 cosign 请使用 `--cert`。 想要进一步了解无密钥签名,请参考 [Keyless Signatures]。 ## 验证镜像签名 完整的镜像签名列表请参见[发行版本]。 从这个列表中选择一个镜像,并使用 `cosign verify` 命令来验证它的签名: ```shell COSIGN_EXPERIMENTAL=1 cosign verify registry.k8s.io/kube-apiserver-amd64:v1.24.0 ``` `COSIGN_EXPERIMENTAL=1` 用于对以 `KEYLESS` 模式签名的镜像进行验证。想要进一步了解 `KEYLESS`,请参考 [Keyless Signatures]。 ### 验证所有控制平面组件镜像 验证所有已签名的控制平面组件镜像,请运行以下命令: ```shell curl -Ls https://sbom.k8s.io/$/release | grep 'PackageName: registry.k8s.io/' | awk '{print $2}' > images.txt input=images.txt while IFS= read -r image do COSIGN_EXPERIMENTAL=1 cosign verify "$image" done < "$input" ``` 当你完成某个镜像的验证时,可以在你的 Pod 清单通过摘要值来指定该镜像,例如: `registry-url/image-name@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2`。 要了解更多信息,请参考[镜像拉取策略]章节。 ## 使用准入控制器验证镜像签名 有一些非控制平面镜像 (例如 [conformance 镜像]), 也可以在部署时使用 [sigstore policy-controller] 控制器验证其签名。如要使用 `policy-controller`,下面是一些有帮助的资源: - [安装] - [配置选项]
上一篇:
Kubernetes限制存储使用量
下一篇:
以非root用户身份运行Kubernetes节点组件
该分类下的相关小册推荐:
Kubernetes合辑1-安装Kubernetes
Kubernets合辑5-Pod控制器
Kubernets合辑14-日志收集
云原生-K8S入门实战
Kubernets合辑7-存储
Kubernetes中文教程(二)
Kubernets合辑6-服务发现
Kubernets合辑15-持续部署
Kubernets合辑3-kubernetes介绍
Kubernetes中文教程(六)
Kubernets合辑11-持续集成
Kubernets合辑9-资源约束