安全组 ¶
使用现有的 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