Ana içeriğe geç

Apinizer Reverse Proxy Üzerinden Kubectl Bağlantısı (Windows)

1. Cluster Bilgilerinin Alınması

Kubernetes API server adresini ve port bilgisini almak için aşağıdaki komutu çalıştırın:

kubectl cluster-info

Çıktıdaki Kubernetes control plane adresini ve portunu not alın. Bu bilgi Apinizer'da reverse proxy tanımlanırken kullanılacaktır.

2. Apinizer'a Reverse Proxy Eklenmesi

Apinizer'da ilgili cluster için bir reverse proxy tanımı oluşturun. Backend adresi olarak kubectl cluster-info çıktısındaki adresi girin.

Request Policy Yapılandırması

Kubernetes API'sinin kubectl ile uyumlu çalışabilmesi için aşağıdaki header dönüşümlerini Request Policy → Business Rule bölümünden ekleyin:

Action TypeSource VariableVariable Data TypeTarget Value Source TypeValue
Modifyaccept-encodingStringSpecify the Valueidentity
Delete accept-encoding---
bilgi

Bu header dönüşümleri yapılmadığında kubectl, Kubernetes'ten gzip sıkıştırılmış ve özel formatlı yanıtlar talep eder. Apinizer bu yanıtları işlerken JSON kesilmesine neden olur ve unexpected end of JSON input hatası alınır.

3. Token Oluşturulması

Kubernetes cluster'a erişimi olan bir makinede aşağıdaki komutları sırasıyla çalıştırın:

Service account oluşturma:

kubectl create serviceaccount kube-user -n kube-system

Cluster admin yetkisi tanımlama:

kubectl create clusterrolebinding kube-user-admin --clusterrole=cluster-admin --serviceaccount=kube-system:kube-user

Token oluşturma (1 yıl geçerli):

kubectl create token kube-user -n kube-system --duration=8760h
bilgi

Son komutun çıktısı olan token değerini kopyalayın ve güvenli bir yerde saklayın. Bu token bir sonraki adımda kubeconfig dosyasında kullanılacaktır. Token süresi dolduğunda bu adımı tekrarlayarak yeni token oluşturmanız gerekir.

4. Kubeconfig Dosyasının Hazırlanması

Windows'ta kubectl, cluster bağlantı bilgilerini %USERPROFILE%\.kube\config dosyasından okur. Bu dosya genellikle C:\Users\KULLANICI_ADINIZ\.kube\config konumunda bulunur.

Dosyayı oluşturmak için CMD'de aşağıdaki komutu çalıştırın:

mkdir %USERPROFILE%\.kube
notepad %USERPROFILE%\.kube\config

Notepad açıldığında aşağıdaki şablonu yapıştırın, ilgili alanları doldurun ve kaydedin:

apiVersion: v1
clusters:
- cluster:
server: <Apinizer reverse proxy URL'si>
insecure-skip-tls-verify: true
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kube-user
name: kube-user@kubernetes
current-context: kube-user@kubernetes
kind: Config
preferences: {}
users:
- name: kube-user
user:
token: <BURAYA_3_ADIMDA_ALINAN_TOKEN>
bilgi

insecure-skip-tls-verify: true ayarı, Apinizer'ın TLS sertifikasının Kubernetes sertifikasından farklı olması nedeniyle gereklidir.