使用安全组策略为工作负载绑定安全组
云原生网络2.0网络模式下,Pod使用的是VPC的弹性网卡/辅助弹性网卡,可直接绑定安全组,绑定弹性公网IP。为方便用户在CCE内直接为Pod关联安全组,CCE新增了一个名为SecurityGroup的自定义资源对象。通过SecurityGroup资源对象,用户可对工作负载实现自定义的安全隔离诉求。
使用安全组策略(SecurityGroup)为Pod绑定的安全组优先级高于集群容器网络配置(NetworkAttachmentDefinition)中的安全组。
约束与限制
- v1.19及以上的CCE Turbo集群支持此功能,v1.19以下版本CCE Turbo集群需要升级到v1.19及以上版本后才能启用此功能。
- 1个工作负载最多可绑定5个安全组。
通过界面创建
- 登录CCE控制台,单击集群名称,进入集群。
- 在左侧选择“工作负载”,单击工作负载名称。
- 在“安全组策略”页签下,单击“创建”。
- 根据界面提示,配置参数, 具体如表1所示。
表1 配置参数 参数名称
描述
示例
安全组策略名称
输入安全组策略名称。
请输入1-63个字符,以小写字母开头,由小写字母、数字、连接符(-)组成,且不能以连接符(-)结尾。
security-group
关联安全组
选中的安全组将绑定到选中的工作负载的弹性网卡/辅助弹性网卡上,在下拉框中最多可以选择5条,安全组必选,不可缺省。
如将绑定的安全组未创建,可单击“创建安全组”,完成创建后单击刷新按钮。
须知:- 最多可选择5个安全组。
- 鼠标悬浮在安全组名称上,可查看安全组的详细信息。
64566556-bd6f-48fb-b2c6-df8f44617953
5451f1b0-bd6f-48fb-b2c6-df8f44617953
- 参数配置后,单击“确定”。
创建完成后页面将自动返回到安全组策略列表页,可以看到新添加的安全组策略已在列表中。
通过kubectl命令行创建
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 创建一个名为securitygroup-demo.yaml的描述文件。
vi securitygroup-demo.yaml
例如,用户创建如下的SecurityGroup资源对象,给所有的app:nginx工作负载绑定上提前已经创建的64566556-bd6f-48fb-b2c6-df8f44617953,5451f1b0-bd6f-48fb-b2c6-df8f44617953的两个安全组。示例如下:
apiVersion: crd.yangtse.cni/v1 kind: SecurityGroup metadata: name: demo namespace: default spec: podSelector: matchLabels: app: nginx securityGroups: - id: 64566556-bd6f-48fb-b2c6-df8f44617953 - id: 5451f1b0-bd6f-48fb-b2c6-df8f44617953
以上yaml参数说明如表2。 - 执行以下命令,创建SecurityGroup。
kubectl create -f securitygroup-demo.yaml
回显如下表示已开始创建SecurityGroup
securitygroup.crd.yangtse.cni/demo created
- 执行以下命令,查看SecurityGroup。
kubectl get sg
回显信息中有创建的SecurityGroup名称为demo,表示SecurityGroup已创建成功。
NAME POD-SELECTOR AGE all-no map[matchLabels:map[app:nginx]] 4h1m s001test map[matchLabels:map[app:nginx]] 19m demo map[matchLabels:map[app:nginx]] 2m9s