kubernetes 学習 calico simple policy tutorial その2
前回の続き。ネットワークポリシー default-deny, access-nginx がある状態から。
$ kubectl get networkpolicy --namespace=policy-demo NAME POD-SELECTOR AGE access-nginx run=nginx 9m54s default-deny <none> 15m
allow-all してみる
矛盾するネットワークポリシーはどうなるの? 適用するネットワークポリシーの順序に関係はあるのか? とか疑問が生まれる。
いろいろ分かっていないが試してみよう。allow-all作成。 これで default-deny, access-nginx, allow-all の3コ。
$ kubectl create -f - <<EOF kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: name: allow-all namespace: policy-demo spec: podSelector: matchLabels: {} policyTypes: - Ingress - Egress ingress: - {} egress: - {} EOF
networkpolicy.networking.k8s.io/allow-all created
pod:access から
/ # echo $HOSTNAME access-7c5df8f4c-b8p5b / # wget -q --timeout=5 nginx -O - <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title>
pod:cant-access から。アクセスできた。
/ # echo $HOSTNAME cant-access-7587658dc7-h5b7f / # wget -q --timeout=5 nginx -O - <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title>
allow-all 削除
networkpolicy:allow-all 削除。残りは default-deny , access-nginx。
$ kubectl delete networkpolicy allow-all --namespace=policy-demo networkpolicy.extensions "allow-all" deleted
pod:access から
/ # echo $HOSTNAME access-7c5df8f4c-b8p5b / # wget -q --timeout=5 nginx -O - <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title>
pod:cant-access から。アクセスできなくなった。
/ # echo $HOSTNAME cant-access-7587658dc7-h5b7f / # wget -q --timeout=5 nginx -O - wget: download timed out
default-deny を削除
networkpolicy:default-deny を削除。残りは access-nginx。
$ kubectl delete networkpolicy default-deny --namespace=policy-demo networkpolicy.extensions "default-deny" deleted
pod:access で
/ # echo $HOSTNAME access-7c5df8f4c-b8p5b / # wget -q --timeout=5 nginx -O - <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title>
pod:cant-access でいけない。あれ?ということは access-nginx は acccess->nginx だけを許可するポリシーだった?
/ # echo $HOSTNAME cant-access-7587658dc7-h5b7f / # wget -q --timeout=5 nginx -O - wget: download timed out
access-nginx 削除
networkpolicy:access-nginx を削除。これでネットワークポリシーがなくなる。
$ kubectl delete networkpolicy access-nginx --namespace=policy-demo networkpolicy.extensions "access-nginx" deleted
pod:access で
/ # echo $HOSTNAME access-7c5df8f4c-b8p5b / # wget -q --timeout=5 nginx -O - <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title>
pod:cant-access で。いけた。
/ # echo $HOSTNAME cant-access-7587658dc7-h5b7f / # wget -q --timeout=5 nginx -O - <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title>