kubernetes对应用流量限制

  • kubernetes对应用流量限制已关闭评论
  • 24 views
  • A+
所属分类:Kubernetes

用例

  • 只有选定范围内的服务才能够访问指定服务。
  • 只有允许的服务才能够访问数据库

kubernetes对应用流量限制

示例

假设你的应用是一个 REST API 服务器,使用标签app=bookstore和role=api进行标识:

kubectl run apiserver --image=nginx --labels app=bookstore,role=api --expose --port 80

把下面的网络策略保存为api-allow.yaml,这个策略只允许符合标签app=bookstore条件的Pod发出的流量:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: api-allow
spec:
  podSelector:
    matchLabels:
      app: bookstore
      role: api
  ingress:
  - from:
      - podSelector:
          matchLabels:
            app: bookstore
$ kubectl apply -f api-allow.yaml
networkpolicy "api-allow" created

测试

要测试策略中隐含的拦截动作,可以运行一个不带有app=bookstore标签的 Pod:

$ kubectl run test-$RANDOM --rm -i -t --image=alpine -- sh
/ # wget -qO- --timeout=2 http://apiserver
wget: download timed out

通信失败了。

接下来测试一下允许通过的流量,从一个app=bookstore的 Pod 中发出测试:

$ kubectl run test-$RANDOM --rm -i -t --image=alpine --labels app=bookstore,role=frontend -- sh
/ # wget -qO- --timeout=2 http://apiserver
<!DOCTYPE html>
<html><head>

可以看到,成功的取得了内容。

清理

kubectl delete deployment apiserver
kubectl delete service apiserver
kubectl delete networkpolicy api-allow
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 微信公众号
  • 微信公众号扫一扫
  • weinxin
avatar