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

במסמך הזה מוסבר איך ליצור אשכול שלא משתמש ב-kube-proxy.

kube-proxy הוא בקר שפועל בכל צומת עובד באשכול. הוא עוקב אחרי אובייקטים של Kubernetes Service ויוצר כללי iptables להעברת מנות שנשלחות לכתובות של Service. חלופה לשימוש ב-kube-proxy וב-iptables למטרה הזו היא שימוש ב-Dataplane V2 במצב kube-proxy-replacement. כך אפשר להסיר את 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