Calico Ağ Eklentisi Keşfi ve Pratik Uygulaması

Bu makale, Kubernetes kümesindeki Calico ağ eklentisinin yapılandırmasını ve pratik uygulamasını derinlemesine inceliyor, yaygın sorun giderme yöntemlerini ve ağ optimizasyon stratejilerini analiz ediyor.

Calico Ağ Eklentisi Keşfi ve Pratik Uygulaması

Genel Bakış

Calico, Kubernetes ekosisteminde yaygın olarak kullanılan bir Konteyner Ağ Arayüzü (CNI) eklentisidir ve yüksek performanslı ağ bağlantısı ile esnek ağ ilkesi yönetimi sunar. Bu makale, üretim ortamı deneyimlerine dayanarak, Calico’nun temel işlevlerini ve yapılandırma noktalarını derinlemesine analiz eder.

Çekirdek İşlev Mimarisi

Calico, konteynerler arası iletişimi gerçekleştirmek için üç katmanlı yönlendirme modelini kullanır; temel bileşenleri şunlardır:

  • Felix: Her düğümde çalışan bir arka plan programı (daemon), yönlendirme yapılandırması ve ACL kurallarından sorumludur
  • BIRD: Yönlendirme dağıtım bileşeni, düğümler arası yönlendirme bilgi alışverişini gerçekleştirir
  • confd: Dinamik yapılandırma oluşturma aracı
  • CNI eklentisi: Kubernetes ağ modeliyle entegrasyon sağlar

Yapılandırma Yönetimi ve Pratik Uygulama

IP Adres Havuzu Yapılandırması

Ağ Mimarisi Prensipleri

graph TD
    subgraph Kubernetes Kümesi
        node1[Node1] -->|BGP Yönlendirme| node2[Node2]
        node1 -->|VXLAN Tüneli| node3[Node3]
        node2 -->|IPIP Tüneli| node3
    end
    node1 --> pod1[Pod]
    node2 --> pod2[Pod]
    node3 --> pod3[Pod]
[root@k8s-03:~/.kube 20:41 $]k get ippools.crd.projectcalico.org -o yaml
apiVersion: v1
items:
- apiVersion: crd.projectcalico.org/v1
  kind: IPPool
  metadata:
    annotations:
      kubectl.kubernetes.io/last-applied-configuration: |
        {"apiVersion":"crd.projectcalico.org/v1","kind":"IPPool","metadata":{"annotations":{},"generation":1,"name":"default-ipv4-ippool"},"spec":{"allowedUses":["Workload","Tunnel"],"blockSize":26,"cidr":"192.168.0.0/16","ipipMode":"Never","natOutgoing":true,"nodeSelector":"all()","vxlanMode":"Always"}}
      projectcalico.org/metadata: '{"uid":"0891de51-013e-4a44-9cb6-0c142f480567","creationTimestamp":"2023-05-26T07:36:30Z"}'
    creationTimestamp: "2023-05-26T07:36:30Z"
    generation: 3
    name: default-ipv4-ippool
    resourceVersion: "37479"
    uid: de7868c1-ad93-4441-aa22-9198d07822f5
  spec:
    allowedUses:
    - Workload
    - Tunnel
    blockSize: 26
    cidr: 192.168.0.0/16
    ipipMode: Never
    natOutgoing: true
    nodeSelector: all()
    vxlanMode: Always
kind: List
metadata:
  resourceVersion: ""

[root@k8s-03:~/.kube 20:41 $]k edit ippools.crd.projectcalico.org default-ipv4-ippool

Yapılandırma Değişikliği Dikkat Edilecek Hususlar

  1. IPPool değiştirildikten sonra yapılandırmanın geçerli olması için calico-node bileşeni yeniden başlatılmalıdır
  2. CIDR değişikliği mevcut Pod ağ kesintisine neden olabilir, dikkatli操作 yapılmalıdır
  3. VXLAN/IPIP modu seçimi ağ performansı ve uyumluluk dikkate alınarak yapılmalıdır

Detaylı Yapılandırma Adımları

IPPool Yapılandırmasını Değiştirme

  1. Mevcut yapılandırmayı alın:
    kubectl get ippools.crd.projectcalico.org -o yaml
    
  2. Yapılandırmayı düzenleyin:
    kubectl edit ippools.crd.projectcalico.org default-ipv4-ippool
    
  3. Temel parametre açıklamaları:
    • cidr: Pod ağ CIDR aralığı
    • vxlanMode: Always ile VXLAN’ı etkinleştirir
    • ipipMode: Never ile IPIP’i devre dışı bırakır
    • natOutgoing: true ile giden NAT’ı etkinleştirir

Yaygın Sorun Giderme

Düğümler Arası İletişim Başarısızlığı

flowchart TD
    A[Düğümler arası ağ kopukluğu] --> B{Modu kontrol et}
    B -->|VXLAN| C[UDP 4789 portunu doğrula]
    B -->|IPIP| D[Protokol numarası 4'ü doğrula]
    C --> E[Güvenlik duvarı yapılandırması]
    D --> E
    E --> F[Sorun çözüldü]

Yapılandırma Doğrulama Komutları

# Calico düğüm durumunu kontrol et
calicoctl node status

# Yönlendirme tablosunu görüntüle
ip route show

Performans Optimizasyon Önerileri

  1. Büyük kümelerde VXLAN yerine BGP kullanın
  2. Performansı artırmak için eBPF veri düzlemini etkinleştirin
  3. IP adres bloğu boyutunu mantıklı bir şekilde ayarlayın

Referans Dokümanlar