Mon. Aug 11th, 2025
Kubeadm ve Kubectl ile Sıfırdan Kubernetes Kümesi Nasıl Başlatılır

Kubernetes, karmaşıklık konusunda bir üne sahiptir ancak modern sürümlerin kurulumu nispeten kolaydır. Resmi küme yönetim aracı Kubeadm, kontrol düzleminizi başlatmak ve çalışan düğümlerini kaydetmek için otomatik bir deneyim sağlar.

Bu makale, varsayılan yapılandırmayı kullanarak basit bir Kubernetes kümesi kurma konusunda size yol gösterecektir. Bu, yeni sağlanan bir ana bilgisayar üzerinde çalışması gereken “sıfırdan” bir kılavuzdur. Debian tabanlı bir sistem varsayılmıştır, ancak komutların çoğunu işletim sisteminizin paket yöneticisine uyacak şekilde ayarlayabilirsiniz. Bu adımlar Ubuntu 22.04 ve Kubernetes v1.25 kullanılarak test edilmiştir.

Container Runtime Yükleme

Kubernetes, kapsayıcılarınızı başlatmak ve çalıştırmak için CRI uyumlu bir kapsayıcı çalışma zamanına ihtiyaç duyar. Standart Kubernetes dağıtımı bir çalışma zamanı ile birlikte gelmez, bu yüzden devam etmeden önce bir tane kurmalısınız. containerd en popüler seçimdir. Modern Docker sürümlerine dahil olan çalışma zamanıdır.

Docker’ın Apt deposunu kullanarak containerd’yi yükleyebilirsiniz. İlk önce kurulum prosedürü sırasında kullanılacak bazı bağımlılıkları ekleyin:

$ sudo apt update
$ sudo apt install -y \
   ca-certificates \
   curl \
   gnupg \
   lsb-release

Ardından, deponun GPG anahtarını Apt’s’e ekleyin keyrings dizin:

$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Şimdi bu komutu çalıştırarak sisteminiz için doğru depoyu ekleyebilirsiniz:

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker deposunun içeriğini dahil etmek için paket listenizi güncelleyin:

$ sudo apt update

Sonunda containerd’i kurun:

$ sudo apt install -y containerd.io

Containerd hizmetinin başlatıldığını kontrol edin:

$ sudo service containerd status
 containerd.service - containerd container runtime
     Loaded: loaded (/lib/systemd/system/containerd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-09-13 16:50:12 BST; 6s ago

Kubernetes ile düzgün çalışmasını sağlamak için containerd yapılandırma dosyasında birkaç ince ayar yapılması gerekir. İlk önce dosyanın içeriğini containerd’ın varsayılan yapılandırmasıyla değiştirin:

$ sudo containerd config default > /etc/containerd/config.toml

Bu, mevcut tüm yapılandırma alanlarını doldurur ve yeni kurulumlarda CRI desteğinin devre dışı bırakılması gibi bazı sorunları çözer.

Sonraki açık /etc/containerd/config.toml ve aşağıdaki satırı bulun:

SystemdCgroup = false

Değeri şununla değiştir: true:

SystemdCgroup = true

için tam desteği etkinleştirmek için bu değişiklik gereklidir. systemd grup yönetimi. Bu seçenek olmadan Kubernetes sistem kapsayıcıları kendilerini periyodik olarak yeniden başlatır.

Değişikliklerinizi uygulamak için containerd’ı yeniden başlatın:

$ sudo service containerd restart

Kubeadm, Kubectl ve Kubelet’i Yükleme

Sürecin ikinci aşaması Kubernetes araçlarını kurmaktır. Bu üç yardımcı program aşağıdaki yetenekleri sağlar:

  • Kubeadm – Küme düzeyinde çalışan bir yönetim aracı. Bunu kümenizi oluşturmak ve ek düğümler eklemek için kullanacaksınız.
  • Kubectl – Kubectl, çalıştığında Kubernetes kümenizle etkileşim kurmak için kullandığınız CLI’dir.
  • Kubelet – Bu, kümenizin çalışan düğümlerinde çalışan Kubernetes işlemidir. Kontrol düzlemi ile teması sürdürmek ve istendiğinde yeni konteynerleri başlatmaktan sorumludur.

Üç ikili dosya, Google Cloud tarafından barındırılan bir Apt deposunda bulunur. Önce havuzun GPG anahtarlığını kaydedin:

$ sudo curl -fsSLo /etc/apt/keyrings/kubernetes.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

Ardından depoyu kaynaklarınıza ekleyin…

$ echo "deb [signed-by=/etc/apt/keyrings/kubernetes.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

…ve paket listenizi güncelleyin:

$ sudo apt update

Şimdi paketleri kurun:

$ sudo apt install -y kubeadm kubectl kubelet

Apt’nin çalıştırdığınızda bunları otomatik olarak güncellememesi için bu paketleri “tutmak” en iyi uygulamadır. apt upgrade. Kubernetes küme yükseltmeleri, kapalı kalma süresini ve istenmeyen kesinti değişikliklerini önlemek için manuel olarak başlatılmalıdır.

$ sudo apt-mark hold kubeadm kubectl kubelet

Değiştirmeyi Devre Dışı Bırakma

Kubernetes, takas etkinleştirildiğinde çalışmaz. Kümenizi oluşturmadan önce takası kapatmalısınız. Aksi takdirde, Kubelet’in başlamasını beklerken sağlama işleminin askıda kaldığını göreceksiniz.

Takas işlemini devre dışı bırakmak için bu komutu çalıştırın:

$ sudo swapoff -a

Sonraki /etc/fstab dosya ve takas bağlantılarını devre dışı bırakın:

UUID=ec6efe91-5d34-4c80-b59c-cafe89cc6cb2 /               ext4    errors=remount-ro 0       1
/swapfile                                 none            swap    sw              0       0

Bu dosya, swap son satır olarak yazın. Sistem yeniden başlatıldıktan sonra takasın devre dışı kalması için kaldırılmalı veya yorumlanmalıdır.

br_netfilter Modülünü Yükleme

bu br_netfilter iptables’ın köprülü trafiği görmesini sağlamak için çekirdek modülü gereklidir. Kubeadm, bu modül eksik olduğunda kümenizi oluşturmanıza izin vermez.

Aşağıdaki komutla etkinleştirebilirsiniz:

$ sudo modprobe br_netfilter

Sisteminizin modüller listesine ekleyerek yeniden başlatmanın ardından devam etmesini sağlayın:

$ echo br_netfilter | sudo tee /etc/modules-load.d/kubernetes.conf

Kümenizi Oluşturma

Kubernetes kümenizi oluşturmaya hazırsınız. Koşmak kubeadm init kontrol uçağınızı barındırmak istediğiniz makinede:

$ sudo kubeadm init --pod-network-cidr=10.244.0.0/16

bu --pod-network-cidr bayrağı, daha sonra yüklenecek Pod ağ eklentisi için doğru bir CIDR tahsisinin mevcut olması için dahil edilmiştir. varsayılan değeri 10.244.0.0/16 çoğu durumda çalışır ancak yoğun şekilde özelleştirilmiş bir ağ ortamı kullanıyorsanız aralığı değiştirmeniz gerekebilir.

Küme oluşturma işleminin tamamlanması birkaç dakika sürebilir. İlerleme bilgileri terminalinizde görüntülenecektir. Başarı üzerine bu mesajı görmelisiniz:

Your Kubernetes control-plane has initialized successfully!

Çıktı ayrıca kümenizi kullanmaya nasıl başlayacağınızla ilgili bilgileri de içerir.

Kubeconfig Dosyanızı Hazırlama

Otomatik olarak oluşturulan Kubeconfig dosyasını kendi dosyanıza kopyalayarak başlayın. .kube/config dizin. Kubectl’in içeriğini doğru okuyabilmesi için dosyanın sahipliğini kendinize göre ayarlayın.

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

Bir Pod Ağ Eklentisi Yükleme

Kubernetes, çalışan düğümler normal şekilde çalışmaya başlamadan önce kümenizde bir Pod ağ eklentisinin bulunmasını gerektirir. Yüklemenizi tamamlamak için uyumlu bir eklentiyi manuel olarak yüklemeniz gerekir.

Calico ve Flannel en popüler iki seçimdir. Bu kılavuz, basit kurulum deneyimi nedeniyle Flanel kullanır.

Kümenize Flanel eklemek için Kubectl kullanın:

$ kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

Birkaç dakika bekleyin ve ardından çalıştırın kubectl get nodes terminalinizde. Düğüm gösterilerinizi şu şekilde görmelisiniz: Ready ve kümenizle etkileşim kurmaya başlayabilirsiniz.

$ kubectl get nodes
NAME       STATUS   ROLES           AGE     VERSION
ubuntu22   Ready    control-plane   7m19s   v1.25.0

Eğer koşarsan kubectl get pods --all-namespaceskontrol düzlemi bileşenlerinin, CoreDNS ve Flannel’in hepsinin çalışır durumda ve çalışır durumda olduğunu görmelisiniz:

$ kubectl get pods --all-namespaces
NAMESPACE      NAME                               READY   STATUS    RESTARTS        AGE
kube-flannel   kube-flannel-ds-xlrk6              1/1     Running   5 (16s ago)     11m
kube-system    coredns-565d847f94-bzzkf           1/1     Running   5 (2m9s ago)    14m
kube-system    coredns-565d847f94-njrdc           1/1     Running   4 (30s ago)     14m
kube-system    etcd-ubuntu22                      1/1     Running   6 (113s ago)    13m
kube-system    kube-apiserver-ubuntu22            1/1     Running   5 (30s ago)     16m
kube-system    kube-controller-manager-ubuntu22   1/1     Running   7 (3m59s ago)   13m
kube-system    kube-proxy-r9g9k                   1/1     Running   8 (21s ago)     14m
kube-system    kube-scheduler-ubuntu22            1/1     Running   7 (30s ago)     15m

Kümenizle Etkileşim

Artık kümenizle etkileşim kurmak için Kubectl’i kullanmaya başlayabilirsiniz. Devam etmeden önce, Pod’ların programlamasına izin vermek için kontrol düzlemi düğümünüzdeki varsayılan kusuru kaldırın. Kubernetes, kaynak çekişmesini önlemek için Pod’ların kontrol düzlemi düğümünde çalışmasını engeller, ancak bu kısıtlama yerel kullanım için gereksizdir.

$ kubectl taint node ubuntu22 node-role.kubernetes.io/control-plane:NoSchedule-
node/ubuntu22 untainted

Yer değiştirmek ubuntu22 kendi düğümünüze atanan adla yukarıdaki komutta.

Şimdi basit bir NGINX Pod başlatmayı deneyin:

$ kubectl run nginx --image nginx:latest
pod/nginx created

Bir NodePort hizmetiyle gösterin:

$ kubectl expose pod/nginx --port 80 --type NodePort
service/nginx exposed

Hizmete tahsis edilen ana bilgisayar bağlantı noktasını bulun:

$ kubectl get services
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        18m
nginx        NodePort    10.106.44.155   <none>        80:30647/TCP   27s

liman 30647. Bu uç noktaya yapılan HTTP istekleri, yanıt olarak artık varsayılan NGINX açılış sayfasını yayınlamalıdır:

$ curl http://localhost:30647
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>

Kubernetes kümeniz çalışıyor!

Başka Bir Düğüm Ekleme

Ek çalışan düğümleri yapılandırmak için önce kullanmak istediğiniz her makinede “Kümeniz Oluşturma”ya kadar olan bölümlerdeki tüm adımları tekrarlayın. Her Düğümün containerd, Kubeadm ve Kubelet’in kurulu olması gerekir. Ayrıca, düğümünüzün kontrol düzleminizi çalıştıran makineye tam ağ bağlantısına sahip olduğunu da kontrol etmelisiniz.

Ardından, yeni çalışan düğümünüzde aşağıdaki komutu çalıştırın:

kubeadm join 192.168.122.229:6443 \
    --node-name node-b \
    --token <token> \
    --discovery-token-ca-cert-hash sha256:<token-ca-cert-hash>

IP adresini kontrol düzlemi düğümünüzün adresiyle değiştirin. değerleri <token> ve <token-ca-cert-hash> koştuğunda görüntülenmiş olacak kubeadm init kontrol düzleminizi oluşturmak için. Aşağıdaki adımları kullanarak bunları geri alabilirsiniz.

Jeton

Koşmak kubeadm token list kontrol düzlemi düğümünde. Token değeri şurada gösterilecektir: TOKEN kolon.

$ kubeadm token list
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
lkoz6v.cw1e01ckz2yqvw4u   23h         2022-09-14T19:35:03Z   authentication,signing

Jeton CA Sertifika Karması

Bu komutu çalıştırın ve çıktısını değer olarak kullanın:

$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
   openssl dgst -sha256 -hex | sed 's/^.* //'

Kümeye Katılmak

bu kubeadm join komut başarı üzerine bu çıktıyı üretmelidir:

$ kubeadm join 192.168.122.229:6443 \
    --node-name node-b \
    --token <token> \
    --discovery-token-ca-cert-hash sha256:<token-ca-cert-hash>
[kubelet-start] Starting the kubelet[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...

This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.

Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

Düğümün kümeye katıldığını ve Pod’ları almaya hazır olduğunu doğrulayın. kubectl get nodes emretmek:

$ kubectl get nodes
NAME       STATUS   ROLES           AGE    VERSION
node-b     Ready    <none>          91s    v1.25.0
ubuntu22   Ready    control-plane   100m   v1.25.0

Düğüm listede görünür ve Ready onun durumu olarak. Bu, çalışır durumda olduğu ve Kubernetes’in buna Pod’lar planlayabileceği anlamına gelir.

Özet

Kubernetes’i kurmak göz korkutucu görünebilir ancak Kubeadm, zor bitlerin çoğunu sizin için otomatik hale getirir. Hâlâ üzerinde çalışılması gereken birkaç adım olmasına rağmen, başlamadan önce ön koşulların karşılandığından emin olursanız sorunlarla karşılaşmamalısınız.

Çoğu sorun, kullanılabilir kapsayıcı çalışma zamanı olmadığı için ortaya çıkar. br_netfilter çekirdek modülü eksik, takas etkin veya bir Pod ağ eklentisi sağlama ihtiyacı gözden kaçmış. Sorun giderme, bu yaygın hataları kontrol ederek başlamalıdır.

Kubeadm size doğrudan projenin kendisinden Kubernetes’in en son sürümünü sunar. Tek bir komutla tek düğümlü bir küme başlatmanıza izin veren alternatif dağıtımlar mevcuttur. Minikube, MicroK8s ve K3s üç popüler seçenektir. Bunların kurulumu ve yükseltilmesi genellikle daha kolay olsa da, yukarı akış Kubernet’lere kıyasla hepsinin küçük farklılıkları vardır. Kubeadm’i kullanmak sizi Kubernetes’in iç işleyişine yaklaştırır ve birçok farklı ortama uygulanabilir.

By admin

https://www.ulsterorchestra.org.uk/getmedia%2F6d9130ef-2fc4-4ebf-bc95-2a6c7333313f%2Fff-diamantes https://www.ulsterorchestra.org.uk/getmedia%2F205e3086-5020-4158-b45f-ef940b0bebff%2Fff-d-i-a-m-a-n-t-e-s https://www.ulsterorchestra.org.uk/getmedia%2F82cac8e5-cd70-4bcf-b98d-dd46580c50c4%2Fff-d-i-a-m-a-n-t-e-s-1 https://www.ulsterorchestra.org.uk/getmedia%2F4c70a2ce-19c3-42f0-aafb-005691c71de2%2Fff-d-i-a-m-a-n-t-e-s-2 https://www.ulsterorchestra.org.uk/getmedia%2Fcfcb2c62-7fe9-42ed-bd8e-eb00cf0f7021%2Fff-d-i-a-m-a-n-t-e-s-3 https://www.ulsterorchestra.org.uk/getmedia%2Fe0f8f976-985f-4b2b-a5e4-e862cf6501e5%2Fff-d-i-a-m-a-n-t-e-s-4 https://www.ulsterorchestra.org.uk/getmedia%2F9e816873-ca25-4df0-8367-d53e3d765b8e%2Fff-d-i-a-m-a-n-t-e-s-5 https://www.ulsterorchestra.org.uk/getmedia%2F35c8a766-8f32-43ce-9828-6eb5325f7881%2Fcomoseguidores https://www.ulsterorchestra.org.uk/getmedia%2F3926790b-2365-4760-81e8-7d9a8ba77572%2Fmasseguidores https://www.ulsterorchestra.org.uk/getmedia%2F3882e01d-ab78-47cf-b35e-29291daa4305%2Fpruebaseguidores https://www.ulsterorchestra.org.uk/getmedia%2F7cffeb9b-2b84-4e62-8281-ee172a0388e9%2Flikesyvistasseguidores https://www.ulsterorchestra.org.uk/getmedia%2F2ff4ed90-ddf0-4822-a943-6fbc8b284d5d%2Fseguidoresapk https://www.ulsterorchestra.org.uk/getmedia%2Fa196bacb-ffa5-4fdb-9b8a-5cf808258ac9%2Fseguidoresgratuitos https://www.ulsterorchestra.org.uk/getmedia%2F0b76e588-46f6-4737-a5ed-1d6d3ea4e6c6%2Fseguroseguidores https://www.ulsterorchestra.org.uk/getmedia%2F19eca382-3124-4892-bf0b-37be41479ab5%2Ftikseguidores https://www.ulsterorchestra.org.uk/getmedia%2Fd9b5ec8a-9b79-4756-83f7-7d3e8f6d1ec1%2Fseguidorestik https://www.ulsterorchestra.org.uk/getmedia%2F9c079724-adcb-4b98-8d2c-c897f2524219%2Ffort-p-a-v-o-s https://www.ulsterorchestra.org.uk/getmedia%2F53ccb52e-afcc-444c-938b-4124821e06e5%2Ffort-p-a-v-o-s-1 https://www.ulsterorchestra.org.uk/getmedia%2F2cb3e27d-5d69-44c6-8684-034d1e79d491%2Ffort-p-a-v-o-s-2 https://www.ulsterorchestra.org.uk/getmedia%2F8ca89545-302e-4cb7-a59b-9b8d8a7df2fe%2Ffort-p-a-v-o-s-3 https://www.ulsterorchestra.org.uk/getmedia%2F5c64cee2-fc73-40e3-a3eb-737f86b27399%2Ffort-p-a-v-o-s-4 https://www.ulsterorchestra.org.uk/getmedia%2F5e4d5216-73b6-40de-b693-c447fb1a37c5%2Ffort-p-a-v-o-s-5 https://www.ulsterorchestra.org.uk/getmedia%2F4e6b7d95-2eb6-4835-aa77-456bdc1c2c44%2Ffort-p-a-v-o-s-6 https://www.ulsterorchestra.org.uk/getmedia%2F6b6a761b-bd85-4fc5-ab03-cf5ee196b465%2Ffort-p-a-v-o-s-7 https://www.ulsterorchestra.org.uk/getmedia%2F040c10db-2d72-4bb0-8421-ff2f019e649a%2Frr-r-o-b-u-x https://www.ulsterorchestra.org.uk/getmedia%2F1aab0793-0a04-4f3e-bc3a-7e5811cc247c%2Frr-r-o-b-u-x-1 https://www.ulsterorchestra.org.uk/getmedia%2F1c22e4b7-56c8-4f42-9641-a9c09e443ee9%2Frr-r-o-b-u-x-2 https://www.ulsterorchestra.org.uk/getmedia%2F6b5c17ec-6586-4f30-a732-43cd2cc913de%2Frr-r-o-b-u-x-3 https://www.ulsterorchestra.org.uk/getmedia%2F68df2806-9211-4780-b5f9-4d8037b1b229%2Frr-r-o-b-u-x-4 https://www.ulsterorchestra.org.uk/getmedia%2F509b4740-25eb-42b3-8684-2341b8e42dc1%2Frr-r-o-b-u-x-5 https://www.ulsterorchestra.org.uk/getmedia%2Fd211dec6-3fe2-48da-b28c-ccc41e5aff8a%2Frr-r-o-b-u-x-6 https://www.ulsterorchestra.org.uk/getmedia%2F35ac507a-9d21-49ee-8d0e-67d614f18dbc%2Frr-r-o-b-u-x-7 https://www.ulsterorchestra.org.uk/getmedia%2Fda0ddd06-91cb-421f-b6f8-f8eef9fd9786%2Frr-r-o-b-u-x-8 https://nothingbuttop10.bandcamp.com/album/getsmedia-es-campaign-obl-999 https://id.carousell.com/p/ff-9999999-1385247350/ https://id.carousell.com/p/ffes-99999-1385247391/