יצירת אשכול ללא kube-proxy

במצב kube-proxy-replacement של Dataplane V2, אפשר ליצור אשכולות שלא מריצים את kube-proxy או מסתמכים על כללי ה-iptables שלו. הסרת kube-proxy מונעת את עלות המשאבים של תחזוקת קבוצה גדולה של כללי iptables ומשפרת את הביצועים, במיוחד באשכולות גדולים.

הבקר kube-proxy פועל בכל צומת עובד באשכול. הוא עוקב אחרי אובייקטים של שירות Kubernetes ויוצר כללי iptables כדי להעביר חבילות שנשלחות לכתובות של שירותים. במקום זאת, Dataplane V2 מטפל בהעברה הזו, כך שאפשר להסיר את kube-proxy מהאשכול.

מערכות הפעלה נתמכות

כדי ליצור אשכול שלא משתמש ב-kube-proxy, צריך להשתמש באחת ממערכות ההפעלה הנתמכות של Red Hat Enterprise Linux או במערכת ההפעלה הנתמכת של Ubuntu עם ליבה בגרסה 5.7.0 ואילך. אם באשכול שלכם פועלת מערכת הפעלה של Ubuntu עם גרסת ליבה שקודמת ל-5.7.0, התכונה הזו לא נתמכת.

היתרונות של הסרת kube-proxy

  • הימנעות מצריכת המשאבים שנדרשת כדי לתחזק קבוצה גדולה של כללי iptables.

  • לשפר את הביצועים. יצירת כללי iptables לוקחת זמן, במיוחד באשכולות גדולים.

יצירת אשכול בלי kube-proxy

פועלים לפי ההוראות באחד מהנושאים של יצירת אשכול.

כשממלאים את קובץ התצורה של האשכול, צריך לכלול את ההערה הבאה:

preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"

לדוגמה:

apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: alice
  namespace: cluster-alice
  annotations:
    preview.baremetal.cluster.gke.io/kube-proxy-free: "enable"
...

מוודאים שהאשכול לא מכיל את kube-proxy

מציגים ברשימה את ה-DaemonSets באשכול:

kubectl --kubeconfig CLUSTER_KUBECONFIG \
    get daemonsets --all-namespaces

מחליפים את CLUSTER_KUBECONFIG בנתיב של קובץ ה-kubeconfig של האשכול.

מוודאים שהערך kube-proxy לא מופיע ברשימה. לדוגמה:

kube-system   anetd
kube-system   audit-proxy
kube-system   etcd-defrag
kube-system   gke-metrics-agent
kube-system   kube-control-plane-metrics-proxy
kube-system   localpv
kube-system   metallb-speaker
kube-system   node-exporter
kube-system   stackdriver-log-forwarder