1、 Visual Studio Code 1.87 发布,编辑器中的语音听写 - 使用你的声音直接在编辑器中听写。对于安装了 VS Code Speech 扩展的用户,可以使用语音直接在编辑器中听写。--vscode社区
2、新版开源中国 APP —— 3月1日正式上线!
3、本项目希望通过开源社区的力量复现 Sora,由北大 - 兔展 AIGC 联合实验室共同发起,当前资源有限仅搭建了基础架构,无法进行完整训练,希望通过开源社区逐步增加模块并筹集资源进行训练,当前版本离目标差距巨大,仍需持续完善和快速迭代。地址:https://github.com/PKU-YuanGroup/Open-Sora-Plan
不飞则已,一飞冲天;
不鸣则已,一鸣惊人。
——《韩非子》
OPA开放策略代理(OPA,发音为“oh-pa”)是一个开源的、通用的策略引擎,它可以统一跨栈的策略执行。OPA 提供了一种高级的声明式语言,让你可以将策略作为代码来指定,并提供简单的 API 来从你的软件中卸载策略决策。你可以使用 OPA 在微服务、Kubernetes、CI/CD 流水线、API 网关等中执行策略。OPA 最初是由 Styra 创建的,它很自豪能成为云原生计算基金会(CNCF)景观中的一个毕业项目。有关详情,请阅读 CNCF 的公告。--官网
官网地址:https://www.openpolicyagent.org/
官方文档地址:https://www.openpolicyagent.org/docs/latest/
以上是官网对于OPA的介绍,那么再简单来说就是针对云原生环境的基于策略的控制,为整个堆栈的管理员提供灵活、细粒度的控制。OPA 为跨云原生堆栈的策略提供统一的工具集和框架。
这里再聊一聊k8s如何集成OPA,在 Kubernetes 里,OPA 好比一个全能的保安,它通过一种叫做“准入控制器”的特殊通道来确保安全规则被遵守。你可以想象,Kubernetes 集群像一座大楼,而每当有新的服务(比如 Pods)或者其他东西想要进入这座大楼时,它们都需要通过这个保安的检查。
以前,我们有一种被称为“Pod 安全策略”的保镖,但他已经退休了(PSP)。虽然这位保镖干得还不错,但他只关注服务本身,也就是 Pod,对于其他进入大楼的东西(比如 Ingresses、Deployments、Services 等)就无能为力了。
这就是 OPA 登场的时候。这位全能的保安 OPA 不仅仅会检查服务,还会检查进入大楼的任何东西。它的工作方式是站在大楼的入口处,也就是 Kubernetes 的 API 服务器前,检查所有想要进入的请求,确保它们都符合规定。
例如,OPA 可以执行一个规则,要求所有的服务都要使用公司的域名,还可以确保所有使用的软件镜像都必须来自公司内部的镜像仓库。这样,无论是服务本身还是服务使用的其他资源,都必须遵循同一套规则。OPA 就像是一个可以在多个地方同时看门的超级保安,守护着整个 Kubernetes 大楼的安全。
如图所示:
再来看看怎么集成OPA:
在Kubernetes集群中,可以使用官方提供的Helm chart来部署OPA作为一个准入控制器。
以Helm为例,你可以通过Helm安装命令来部署OPA:
helm repo add open-policy-agent https://open-policy-agent.github.io/kube-mgmt/charts
helm install open-policy-agent/opa
这将安装OPA并将其配置为一个 Kubernetes 准入控制器。
OPA 将策略决策与策略执行分离,当应用需要做出策略决策时,它会查询 OPA 并提供结构化数据(例如 JSON)作为输入,OPA 接受任意结构化数据作为输入
使用Rego语言来定义你的策略。一个简单的Regop策略示例是这样的:
package kubernetes.admission
default allow = false
allow {
input.request.kind.kind == "Pod"
input.request.operation == "CREATE"
all([image | image := input.request.object.spec.containers[_].image; startswith(image, "your-registry-domain/")])
}
这个策略检查所有新创建的Pod,确保它们使用的镜像都是从特定的镜像仓库拉取的。
然后你需要将这些策略部署到你的集群中。如果你是手动部署的,可能需要将Rego文件加载到OPA的Pod中。
你需要配置Kubernetes API服务器来调用OPA作为准入控制器。这通常通过创建一个名为 ValidatingWebhookConfiguration
的资源来完成,它告诉API服务器在有资源请求时发送一个HTTP POST请求到OPA。
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: opa-validating-webhook
webhooks:
- name: opa.kube-system.svc
rules:
- apiGroups:
- "*"
apiVersions:
- "*"
operations:
- CREATE
- UPDATE
resources:
- "*"
clientConfig:
service:
namespace: kube-system
name: opa
failurePolicy: Fail # 或者可以设置为 Ignore
在开始强制实施之前,你应该在你的环境中测试策略以确保它们按预期工作。你可以在小范围内试运行它们,或者在非生产环境中进行测试。可以使用命令行工具如 kubectl
来模拟请求并查看OPA的响应。
为了确保 OPA 正在正常工作,你需要监控其性能和健康状况。你可以配置OPA将日志发送到集中的日志平台,比如Elasticsearch或者Prometheus来收集指标。
OPA提供了一些内建的监控端点,你可以用来收集性能数据。
随着时间的推移,你可能需要更新或迭代策略以适应新的要求或安全场景。你应该设定一套流程来管理和更新你的策略,这可能包括版本控制、审计和自动化测试。
确保在实施这些步骤之前,你已经阅读了相关的OPA和Kubernetes文档,并理解了策略如何影响你的集群行为。策略的变化可能会导致不期望的拒绝服务,所以在生产环境中部署之前一定要进行充分的测试。
这里更详细的步骤可以查看官网的例子:https://www.openpolicyagent.org/docs/latest/kubernetes-introduction/