tjtjtjのメモ

自分のためのメモです

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>