Kubernetes/Rancher: Kebijakan Jaringan dengan Traefik

kami menggunakan Rancher untuk menyiapkan cluster dengan Canal sebagai CNI. Kami memutuskan untuk menggunakan Traefik sebagai Ingress Controller dan ingin membuat NetworkPolicy. Kami menonaktifkan ProjectIsolation dan Traefik berjalan di proyek Sistem di namespace kube-system.

Saya membuat Kebijakan ini:

# deny all ingress traffic
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: default-deny-all
spec:
  podSelector: {}
  ingress:
  - from:
    - podSelector: {}

---
# allow traefik
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: ingress-allow-traefik
spec:
  podSelector: {}
  ingress:
    - from:
      - namespaceSelector:
          matchLabels:
            namespace: kube-system
        podSelector:
          matchLabels:
            app: traefik

---
# allow backnet
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: ingress-allow-backnet
spec:
  podSelector: {}
  ingress:
    - from:
      - ipBlock:
          cidr: 10.0.0.0/24
      - ipBlock:
          cidr: 10.1.0.0/24
      - ipBlock:
          cidr: 10.2.0.0/24
      - ipBlock:
          cidr: 192.168.0.0/24

Tapi entah kenapa kita tidak bisa mewujudkannya. Waktu koneksi habis dan hanya itu. Apakah ada masalah besar dengan kebijakan ini? Sesuatu yang saya tidak mengerti tentang NetworkPolicies?

Terima kasih sebelumnya


person mreiners    schedule 03.11.2020    source sumber
comment
Bisakah Anda mencoba menambahkan policyTypes Ingress ke file yaml Anda seperti yang dijelaskan dalam contoh di dokumen?   -  person acid_fuji    schedule 04.11.2020
comment
@thomas Saya baru saja menambahkan policyTypes seperti yang Anda sebutkan tetapi tidak berhasil.   -  person mreiners    schedule 04.11.2020
comment
Apakah Anda mengaktifkan plugin CNI? Itu harus diaktifkan untuk menegakkan kebijakan jaringan. Info lebih lanjut di sini.   -  person acid_fuji    schedule 04.11.2020
comment
Ya, ini diaktifkan secara default saat kami membuat cluster.   -  person mreiners    schedule 05.11.2020


Jawaban (1)


Saya memecahkan Masalahnya. Itu adalah kesalahan pemula:

- namespaceSelector:
    matchLabels:
      namespace: kube-system

Saya tidak menambahkan Label namespace: kube-system ke Namespace kube-system.

Setelah menambahkan Label, itu langsung berfungsi.

person mreiners    schedule 04.11.2020