← Makalelere Dön
Sistem Yönetimi & Cloud Native

Harvester HCI ve openSUSE Leap Üzerinde 3-Node HA K3s Kümesi Kurulumu

Yazar: Savaş Salvador | Yayın Yeri: sistemyonetimi.info | Tarih: Ekim 2026

Modern bulut yerleşkesi altyapılarında hafif sıklet (lightweight) Kubernetes çözümleri, kaynak verimliliği ve kolay yönetilebilirliği sayesinde kurumsal veri merkezlerinde hızla ön plana çıkmaktadır. Bu makalede, Harvester HCI sanallaştırma platformu üzerinde openSUSE Leap 15.6 sanal makineleri (VM) kullanarak, gömülü etcd (Embedded etcd) mimarisine sahip 3 düğümlü High Availability (HA) K3s kümesinin uçtan uca kurulumunu ve ağ mimarisi çözümlerini ele alacağız.

1. Altyapı ve Ağ Mimarisi

Kurulum mimarisinde düğümlerin Harvester HCI üzerindeki varsayılan QEMU User-Mode NAT ağında çakışma yaşamaması adına, sanal makine ağ arayüzleri doğrudan L2 köprülenmiş bir VLAN (L2VLAN / Bridge Network) katmanına dahil edilmiştir. Bu sayede her sanal makine işletim sistemi seviyesinde benzersiz ve yönlendirilebilir bir IP adresi almıştır.

Düğüm Adı İşletim Sistemi Roller IP Adresi
k3s-node-01 openSUSE Leap 15.6 Control-Plane, etcd, Worker 192.168.10.101
k3s-node-02 openSUSE Leap 15.6 Control-Plane, etcd, Worker 192.168.10.102
k3s-node-03 openSUSE Leap 15.6 Control-Plane, etcd, Worker 192.168.10.103

Ağ Mimarisi Kritik Notu:

Harvester HCI üzerinde oluşturulan VM'ler varsayılan Management Network (NAT) üzerinde kaldığında, işletim sistemi içinde 10.0.2.2 gibi varsayılan IP'ler görebilir. etcd veri tabanı düğümleri benzersiz IP adresleri üzerinden bağladığı için, Harvester tarafında Virtual Machine Networks -> L2VLAN tanımı yapılıp VM'lere atanmalıdır.

2. Birinci Control-Plane Düğümünün Başlatılması (Cluster-Init)

İlk düğüm olan k3s-node-01 üzerinde kümenin etcd kök zincirini ve yönetim düzlemini başlatmak için --cluster-init parametresi ile K3s kurulumu gerçekleştirilir:

curl -sfL https://get.k3s.io | K3S_TOKEN=SecretClusterToken123 sh -s - server \
  --cluster-init \
  --node-ip 192.168.10.101 \
  --tls-san 192.168.10.101

3. İkincil ve Üçüncül Düğümlerin Kümeye Katılması (HA etcd Join)

High Availability (Yüksek Erişilebilirlik) mimarisi sağlamak için k3s-node-02 ve k3s-node-03 düğümleri, birinci düğümün API servisine (6443 portu) yönlendirilerek kurulur.

Düğüm 2 (k3s-node-02) Katılımı:

curl -sfL https://get.k3s.io | K3S_TOKEN=SecretClusterToken123 sh -s - server \
  --server https://192.168.10.101:6443 \
  --node-ip 192.168.10.102 \
  --tls-san 192.168.10.102

Düğüm 3 (k3s-node-03) Katılımı:

curl -sfL https://get.k3s.io | K3S_TOKEN=SecretClusterToken123 sh -s - server \
  --server https://192.168.10.101:6443 \
  --node-ip 192.168.10.103 \
  --tls-san 192.168.10.103

4. Küme Sağlığının ve Düğümlerin Doğrulanması

Tüm katılım süreçleri bittikten sonra k3s-node-01 ana sunucusu üzerinden küme durumu sorgulanır:

kubectl get nodes -o wide

Çıktı Özeti:

NAME          STATUS   ROLES                AGE     VERSION        INTERNAL-IP      OS-IMAGE
k3s-node-01   Ready    control-plane,etcd   15m     v1.36.5+k3s1   192.168.10.101   openSUSE Leap 15.6
k3s-node-02   Ready    control-plane,etcd   8m      v1.36.5+k3s1   192.168.10.102   openSUSE Leap 15.6
k3s-node-03   Ready    control-plane,etcd   3m      v1.36.5+k3s1   192.168.10.103   openSUSE Leap 15.6

5. İlk Konteyner Uygulamasının Dağıtılması ve ConfigMap Bağlantısı

Kümenin uygulama sunma kabiliyetini doğrulamak adına 2 kopyalı (replica) Apache Web Sunucusu dağıtılmış ve özelleştirilmiş HTML içeriği bir Kubernetes ConfigMap nesnesi vasıtasıyla pod'lara mount edilmiştir.

cat <<'EOF' | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
  name: apache-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: apache-app
  template:
    metadata:
      labels:
        app: apache-app
    spec:
      containers:
      - name: httpd
        image: httpd:latest
        ports:
        - containerPort: 80
        volumeMounts:
        - name: html-volume
          mountPath: /usr/local/apache2/htdocs/
      volumes:
      - name: html-volume
        configMap:
          name: apache-html
---
apiVersion: v1
kind: Service
metadata:
  name: apache-app
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: apache-app
EOF

6. Sonuç

Bu çalışmada, Harvester HCI hiper-bütünleşik altyapısı üzerinde openSUSE Leap 15.6 dağıtımı kullanılarak kurumsal standartlarda, yedekli (HA etcd) ve üretime hazır bir K3s Kubernetes kümesi ayağa kaldırılmıştır.