跳至内容

安全组

使用现有的 AWS 安全组

注意:使用此功能需自行承担风险,当使用现有 SG 时,kOps 不会确保它们被正确配置。

与其让 kOps 创建和管理 IAM 安全组,不如使用现有的安全组。这在安全策略阻止工具创建自己的安全组的组织中很有用。kOps 仍然会输出管理的安全组与您自己的安全组之间的任何差异。这对于确定升级 kOps 时需要进行的策略更改非常方便。使用管理的安全组不会输出这些差异,由用户跟踪策略的预期更改。

注意

  • 目前 kOps 只支持对集群中的每个实例组和负载均衡器使用现有的安全组,不支持混合使用现有安全组和管理安全组。这是由于生命周期覆盖被用来防止创建与安全组相关的资源。
  • kOps 会将必要的规则添加到 securityGroupOverride 中指定的安全组中。

为此,首先为 ELB(如果您使用的是 LB)和实例组指定安全组示例

apiVersion: kops.k8s.io/v1alpha2
kind: Cluster
metadata:
  name: mycluster.example.com
spec:
  api:
    loadBalancer:
      securityGroupOverride: sg-abcd1234

.
.
.

apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
  labels:
    kops.k8s.io/cluster: mycluster.example.com
  name: master-us-test-1a
spec:
  securityGroupOverride: sg-1234dcba

现在运行集群更新以创建新的 LaunchTemplateVersion,使用 生命周期覆盖 阻止创建安全组资源

kops update cluster ${CLUSTER_NAME} --yes --lifecycle-overrides SecurityGroup=ExistsAndWarnIfChanges,SecurityGroupRule=ExistsAndWarnIfChanges

每次运行 kops update cluster 时,都必须包含上述 --lifecycle-overrides

然后执行滚动更新,以便用新的 LaunchTemplateVersion 替换 ASG 中的 EC2 实例

kops rolling-update cluster ${CLUSTER_NAME} --yes