Not: Bu rehberde belirttiğim komutların ve yapılandırmaların doğrudan çalışması için gerekli olan portların (80 ve 443) kullanılmadığından emin olun. Eğer bu portlar zaten kullanılıyorsa, bu rehber çalışmayacaktır.
1. Docker Kurulumu
sudo nano /etc/fstab
sudo swapoff -a
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
Docker'ın Apt Deposunu Kurma:
Bir makinede ilk defa Docker Engine'i kurmadan önce Docker deposunu kurmanız gerekmektedir. Bu işlemden sonra Docker'ı bu depodan kurabilir ve güncelleyebilirsiniz.
1. Docker'ın Apt Deposunu Ayarlama:
a. Docker'ın resmi GPG anahtarını ekleyin:
Bu anahtar, Docker paketlerinin doğrulamasında kullanılır.
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
Yukarıdaki komutlar, Docker'ın resmi anahtarını eklemek için gereken bazı paketleri kurar.
sudo install -m 0755 -d /etc/apt/keyrings
Bu komutla /etc/apt/keyrings adında bir dizin oluşturulur.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Bu komut, Docker'ın resmi GPG anahtarını indirir ve /etc/apt/keyrings/docker.gpg adlı bir dosyada saklar.
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Bu komut, oluşturduğunuz anahtar dosyasının okunabilir olduğundan emin olmak için gerekli izinleri ayarlar.
b. Deposu Apt kaynaklarına ekleyin:
Bu, Docker'ın resmi depo adresini sisteminize ekler.
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Bu komut, sisteminizin mimarisine ve sürümüne göre Docker deposunu ekler.
sudo apt-get update
Bu komut, depo bilgilerini günceller.
2. Docker Paketlerini Kurma:
a. En Son Sürümü Kurma:
Eğer Docker'ın en son sürümünü kurmak istiyorsanız, aşağıdaki komutu çalıştırın:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Bu komut, Docker'ın en son sürümünü, Docker CLI'yi (Komut Satırı Arayüzü), containerd.io'yu ve bazı eklentileri kurar.
Bu adımların hepsini takip ederek Docker'ı Ubuntu sisteminize başarıyla kurmuş olacaksınız.
2. KinD Kurulumu
Linux için:
AMD64 / x86_64 için:
Bu komut, mevcut makinenizin mimarisinin x86_64 (genelde modern bilgisayarlar için) olup olmadığını kontrol eder. Eğer öyleyse, kind adlı dosyayı belirtilen URL'den indirir.
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.18.0/kind-linux-amd64
İndirilen kind dosyasını çalıştırılabilir yapmak için:
chmod +x ./kind
Son olarak, kind dosyasını global olarak erişilebilir bir konuma taşıyın:
sudo mv ./kind /usr/local/bin/kind
curl -LO "https://dl.k8s.io/release/v1.23.5/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv ./kubectl /usr/local/bin/
Bu adımları takip ederek kind ve kubectl'i Linux sisteminize başarıyla kurmuş olacaksınız.
3. Kubernetes Kümesini Oluşturma
cat << EOF > kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
image: kindest/node:v1.25.8
extraPortMappings:
- containerPort: 30949
hostPort: 80
- containerPort: 30950
hostPort: 443
EOF
Yukarıda verdiğiniz kind-config.yaml dosyasını kullanarak Kubernetes kümesini oluşturabilirsiniz. Eğer bu dosya zaten oluşturulmuşsa, aşağıdaki komutu çalıştırarak kümeyi başlatın:
kind create cluster --config=./kind-config.yaml
4. Helm Kurulumu
Helm, Kubernetes için bir paket yöneticisidir.
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
Daha sonra belirttiğiniz Helm depo adresini ekleyin ve operatörü yükleyin:
helm repo add kfs https://kfsoftware.github.io/hlf-helm-charts --force-update
helm install hlf-operator kfs/hlf-operator --version=1.9.0
Bu adımların ardından, Fabric için Kubernetes operatörü kurulmuş olacaktır. Operatörün doğru bir şekilde kurulduğunu kontrol etmek için:
kubectl get pods
komutunu çalıştırarak hlf-operator pod'unun çalışıp çalışmadığını kontrol edebilirsiniz. Ayrıca, CRD'lerin doğru bir şekilde kurulup kurulmadığını kontrol etmek için:
kubectl get crds | grep hlf.kungfusoftware.es
komutunu çalıştırabilirsiniz. Bu, Fabric ile ilgili CRD'lerin listesini döndürecektir.
5. Kubectl ve Krew Kurulumu
Krew, kubectl için bir eklenti yöneticisidir.
Öncelikle kubectl kurmalısınız:
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
Sonra Krew'i kurabilirsiniz:
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
KREW="krew-${OS}_${ARCH}" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/download/v0.4.4/krew-linux_amd64.tar.gz" &&
tar zxvf "${KREW}.tar.gz" &&
./"${KREW}" install krew
)
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
Eklentiyi kurun:
kubectl krew install hlf
6. Istio Kurulumu
Öncelikle Istio'nun ikili dosyalarını indirin:
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.16.1 TARGET_ARCH=x86_64 sh -
export PATH="$PATH:$PWD/istio-1.16.1/bin"
istioctl install --set profile=default -y
kubectl get svc -n istio-system
kubectl get pods -n istio-system
Kubernetes'e Istio'yu yüklemek için:
kubectl create namespace istio-system
istioctl operator init
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-gateway
namespace: istio-system
spec:
addonComponents:
grafana:
enabled: false
kiali:
enabled: false
prometheus:
enabled: false
tracing:
enabled: false
components:
ingressGateways:
- enabled: true
k8s:
hpaSpec:
minReplicas: 1
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
service:
ports:
- name: http
port: 80
targetPort: 8080
nodePort: 30949
- name: https
port: 443
targetPort: 8443
nodePort: 30950
type: NodePort
name: istio-ingressgateway
pilot:
enabled: true
k8s:
hpaSpec:
minReplicas: 1
resources:
limits:
cpu: 300m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
meshConfig:
accessLogFile: /dev/stdout
enableTracing: false
outboundTrafficPolicy:
mode: ALLOW_ANY
profile: default
EOF
Top comments (0)