|NO.Z.00414|——————————|CloudNative|——|KuberNetes&NetworkPolicy.V06|——|NetworkPolicy.v06|隔离中间件服务.v02|
一、配置networkpolicy服务
### --- 查看mysql、redis服务的标签
~~~ 因为这两个服务没有一个共同的标签
~~~ 所以它俩的NetworkPolicy.yaml只能分开写
[root@k8s-master01 ~]# kubectl get po -n nw-demo --show-labels
NAME READY STATUS RESTARTS AGE LABELS
mysql-69d6f69557-6vtqf 1/1 Running 0 123m app=mysql,pod-template-hash=69d6f69557
redis-c9fdb57d5-4wd78 1/1 Running 0 119m app=redis,pod-template-hash=c9fdb57d5
二、创建NetworkPolicy.yaml配置文件
### --- 创建NetworkPolicy配置文件
~~~ 该yaml含有两个NetworkPolicy,其中mysql-np是对具有app=mysql标签的Pod进行管理,
~~~ redis-np是对具有app=redis标签的Pod进行管理。
~~~ 但是需要注意的是该网络策略的ingress from是以namespaceSelector的标签进行匹配的,
~~~ 并非podSelector,或者是两者的结合。因为在生产环境中,
~~~ 同一个Namespace下可能会有很多不同类型、不同标签的Pod,并且它们可能并不具有一个相同的标签,
~~~ 所以如果通过podSelector进行选择,可能会比较麻烦,
~~~ 因为Pod一旦创建,对其标签的修改是很不方便的(apps/v1一旦创建就不可修改)。
~~~ 而使用namespaceSelector另一个好处是,可以很方便的对某个Namespace下的Pod进行管控,
~~~ 直接给指定Namespace添加标签即可,当然,如果需要更细粒度的管控,也可以结合podSelector使用。
[root@k8s-master01 ~]# vim mysql-redis-nw.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: mysql-np
namespace: nw-demo
spec:
podSelector:
matchLabels:
app: mysql
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
access-nw-mysql-redis: "true"
ports:
- protocol: TCP
port: 3306
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: redis-np
namespace: nw-demo
spec:
podSelector:
matchLabels:
app: redis
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
access-nw-mysql-redis: "true"
ports:
- protocol: TCP
port: 6379
三、创建networkpolicy服务
### --- 创建networkpolicy
[root@k8s-master01 ~]# kubectl create -f mysql-redis-nw.yaml -n nw-demo
networkpolicy.networking.k8s.io/mysql-np created
networkpolicy.networking.k8s.io/redis-np created
### --- 查看创建的服务
[root@k8s-master01 ~]# kubectl get networkpolicy -n nw-demo
NAME POD-SELECTOR AGE
mysql-np app=mysql 25s
redis-np app=redis 24s
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号