Mac'e uygun iş akışı
Dizüstü bilgisayardaki Kubernetes kümesi, gerçekte başka yerde çalışan bir ortamın kopyasıdır. Platform ve uygulama çalışmalarının çoğunda bu kopyaya ihtiyacınız yoktur: konteynerin kendisi ve konuştuğu servisler hakkında hızlı geri bildirim ve gerçek kümeye açık bir terminal gerekir. Apple silicon Mac'te bu, dört işe ayrılır.
| İş | Araç | Oxcart'ta |
|---|---|---|
| Kümeleri inceleme ve yönetme | kubectl, k9s | Yerel Mac araçları; tüm kubeconfig bağlamlarına bağlanır |
| Küme için imaj derleme | docker buildx build | amd64 ve arm64 imajlarını birlikte derleme |
| Uygulamayı ve bağımlılıklarını çalıştırma | docker compose | Yığınınızı sağlık denetimleri, up --wait ve yayınlanan portlarla başlatın |
| Manifestleri API sunucusunda test etme | kwok | Manifestleri, simüle edilmiş düğüm ve pod'larla gerçek kontrol düzleminde denetleyin |
Kümelerinizde kubectl ve k9s
kubectl ve k9s aynı kubeconfig'i okur; biriyle eriştiğiniz her şeyi diğeriyle gezebilirsiniz. Bulut CLI'ları bağlamları sizin için yazar: aws eks update-kubeconfig, az aks get-credentials ve gcloud container clusters get-credentials birer bağlam ekler.
kubectl config get-contexts # every cluster in your kubeconfig
kubectl config use-context my-eks # switch the current context
kubectl get pods -A # works against the current context
k9s # the same context, in a terminal UI
k9s --context my-aks --readonly # another context, read-only Kurulum sayfasında açıklandığı gibi k9s'i Homebrew veya MacPorts ile kurun. Her ortam için ayrı kubeconfig dosyaları tutun; üretimi erişim dışında bırakmak istediğinizde KUBECONFIG=~/.kube/staging k9s ile birini seçin.
Küme için imaj derleme
Çoğu küme amd64 düğümler kullanır, Mac'iniz ise arm64'tür. Oxcart'ta Buildx, varsayılan derleyicide tek Dockerfile'dan ikisini de derler:
docker buildx ls # default builder: linux/amd64, linux/arm64
docker buildx build --platform linux/amd64,linux/arm64 -t myapp:dev .
docker run --rm --platform linux/amd64 myapp:dev # runs through Rosetta
docker run --rm --platform linux/arm64 myapp:dev # runs natively Yerelde derlediğiniz yalnızca amd64 imajını çalıştırırken --platform linux/amd64 geçin. Dağıtım için platform başına bir etiket gönderin veya CI'ın her düğüm için doğru imajı seçen çok mimarili manifest yayınlamasını sağlayın:
docker buildx build --platform linux/amd64 --load -t registry.example.com/myapp:1.4.0-amd64 .
docker push registry.example.com/myapp:1.4.0-amd64 Derlemeler hızlıdır: Oxcart, küçük yerel bağlamın önbelleksiz derlemesinde 341 ms, önbellekli derlemede 121 ms ölçüldü; test ettiğimiz üç çalışma zamanı arasında en hızlısıydı. docker login, kayıt deposu parolalarını macOS Anahtar Zinciri'nde tutar.
Uygulama bağımlılıklarını Compose ile çalıştırın
Değiştirdiğiniz servis uzak kümeyle konuşurken veritabanı, önbellek ve kuyruk Mac'inizde çalışabilir. Sağlık denetimleri ve depends_on: condition: service_healthy içeren compose.yaml, docker compose up -d --wait ile başlar; komut yalnızca tüm servisler sağlıklı olduğunda döner. Tam örnek için Apple silicon üzerinde Docker Compose rehberine bakın. Konteynerler testler arasında kaldırılabilecek kadar hızlı başlar: docker run --rm için 42 ms, 20 konteyneri durdurup kaldırmak için 77 ms.
kwok ile Mac'inizde gerçek Kubernetes API
kwok (Kubernetes WithOut Kubelet), gerçek kontrol düzlemi bileşenlerini konteyner olarak başlatır ve düğümlerle pod'ları simüle eder. Oxcart'ta kwokctl, imaj çekmeleri dahil yaklaşık 15 saniyede etcd, kube-apiserver, kube-scheduler ve kube-controller-manager (v1.36.1) başlattı; Mac'teki kubectl ve k9s bağlandı.
kwokctl create cluster --name dev --runtime docker
kwokctl scale node --replicas 2 --name dev
kubectl apply -f deploy.yaml
kubectl rollout status deploy/web # "successfully rolled out"
kubectl get pods -o wide # 3/3 Running on simulated nodes
k9s # browse it like any cluster
kwokctl delete cluster --name dev Manifestlerin uygulandığını, RBAC kurallarının beklediğiniz izinleri verdiğini, controller veya operator'ün API ile doğru konuştuğunu denetlemek ve ortak kümeye dokunmadan k9s öğrenmek için kullanın. Deployment'ınızdaki hiçbir konteyner gerçekte çalışmaz: pod'lar API sunucusundaki kayıtlardır, kwok tarafından Running olarak işaretlenir.
Kümenizin nerede çalışacağını seçin
Hızlı geri bildirim döngüsünü Mac'te tutun ve ekibinize uygun kümeyi kullanın. Ortak geliştirme kümesi herkese aynı controller'ları, politikaları ve bulut entegrasyonlarını sağlar. Bu ortama bağlı değilken gerçek pod'lara ihtiyaç duyduğunuzda yerel küme faydalıdır.
Oxcart, Linux içinde yükseltilmiş izin gerektiren iş yükleri için ayrıcalıklı konteynerleri destekler. Tam Kubernetes kümesi, küme aracının ağ ve çalışma zamanı yapılandırmasına da bağlıdır. Masaüstü uygulamasına dahil küme için Mac konteyner uygulamaları karşılaştırmasına bakın; günlük uygulama geliştirmede yukarıdaki Compose, Buildx ve kwok akışları yinelemeyi yerelde tutar.
Mac'inizden bulut kümeleri
- EKS: derleyip ECR'a gönderin, ardından
aws eks update-kubeconfig. Yerelde AWS ECS, EKS, Fargate ve Lambda rehberine bakın. - AKS: Azure Container Registry'ye gönderin, ardından
az aks get-credentials. Yerelde Azure Container Apps ve AKS rehberine bakın. - GKE ve Cloud Run: Artifact Registry'ye gönderin; Cloud Run
linux/amd64gerektirir. Yerelde Cloud Run rehberine bakın.
Sorular
Oxcart, Kubernetes iş akışına nasıl uyar?
Oxcart'ı imaj derlemek, uygulamayı ve bağımlılıklarını yerelde çalıştırmak ve manifestleri yerel kwok API sunucusunda test etmek için kullanın. Ayrıcalıklı konteynerler platformun parçasıdır. Ortak veya bulut kümeniz için Mac'te kubectl ve k9s kullanın; Oxcart Kubernetes kümesi içermez.
Oxcart ile kullanabileceğim yerel Kubernetes API var mı?
Evet. kwok, gerçek Kubernetes kontrol düzlemini (etcd, kube-apiserver, kube-scheduler ve kube-controller-manager, testimizde v1.36) Oxcart konteynerleri olarak çalıştırır; Mac'teki kubectl ve k9s buna bağlanır. Düğümleri ve pod'ları simüle edilir; uygulamanızın konteynerlerini çalıştırmak için değil, manifest, RBAC ve API davranışını test etmek içindir.
kubectl ve k9s, Apple silicon Mac'te çalışır mı?
Evet. İkisi de yerel macOS komut satırı aracıdır. kubeconfig'inizi kullanırlar; EKS, AKS, GKE, iş yerindeki küme veya yerel API sunucusu dahil işaret ettiği tüm kümelerle çalışırlar. k9s, Homebrew ve MacPorts kurulumunu belgeler.
Apple silicon Mac'te amd64 Kubernetes kümesi için nasıl imaj derlerim?
Buildx'i --platform linux/amd64 veya ikisi için --platform linux/amd64,linux/arm64 ile kullanın. Oxcart'ta çok platformlu derleme varsayılan derleyicide tamamlanır ve iki mimari de yerelde çalışır. Oxcart'tan çok platformlu imaj gönderimi desteklenmez; platform başına etiket gönderin veya çok mimarili manifesti CI yayınlasın.
Mac'te tam yerel Kubernetes kümesini nerede çalıştırabilirim?
Birçok Mac konteyner uygulaması tek düğümlü küme içerir. Kaynaklarıyla birlikte karşılaştırmalar sayfasında incelenirler. Birçok ekip bunun yerine ortak veya bulut kümeye karşı geliştirir ve yalnızca uygulama bağımlılıklarını yerelde çalıştırır; bu rehberin ele aldığı akış budur.
k9s metrik sunucusu gerektirir mi?
k9s, sunucu olmadan da bağlanır; kümede metrik API yoksa uyarı kaydeder ve CPU ile bellek sütunlarını boş bırakır. kwok testimizde bu uyarıyla birlikte “Kubernetes connectivity OK” bildirdi.
Kaynaklar ve yöntem
- Yerel API örneği: Oxcart 0.1.2, Mac17,14, macOS 27.2, 2026-10-10; kwokctl v0.8.0, k9s v0.51.0 ve kubectl v1.33.9.
- kwok: https://kwok.sigs.k8s.io/; k9s: https://k9scli.io/ ve https://k9scli.io/topics/install/; kind: https://kind.sigs.k8s.io/docs/user/known-issues/; k3d: https://k3d.io/stable/; minikube sürücüleri: https://minikube.sigs.k8s.io/docs/drivers/. Kontrol tarihi 2026-10-10.
- Derleme ve konteyner hızı: Oxcart 0.1.2, 2026-10-10, Apple M5 Max, 8 CPU ve 12 GiB, beş örneğin medyanları; diğer çalışma zamanları aynı günün daha erken saatlerinde, aynı Mac ve test düzeneğinde docker 29.4 istemcisiyle ölçüldü.