In diesem Dokument wird beschrieben, wie Sie Kf und seine Abhängigkeiten auf einem lokalen GKE auf VMware- oder GKE auf Bare Metal-Cluster installieren.
Wenn Sie bereits mit dem Installieren von Kf auf einem GKE-Cluster in Google Cloud vertraut sind, bestehen die Hauptunterschiede im lokalen Verfahren:
- Sie müssen Config Connector nicht für eine lokale Installation installieren.
- Beim lokalen Verfahren werden Docker-Anmeldedaten anstelle von Workload Identity verwendet.
Hinweise
GKE Enterprise-Anforderungen
Ein Nutzercluster, der die Anthos Service Mesh-Anforderungen erfüllt.
Konfiguriert für Logging und Monitoring.
Muss in Ihrer GKE Enterprise-Flotte registriert sein:
Kf-Anforderungen
Zugriffsberechtigungen von Komponenten in Kf auf der Seite Abhängigkeiten und Architektur von Kf ansehen und verstehen.
Tekton zur Verwendung durch Kf. Dies ist kein benutzerorientierter Dienst.
Ein dediziertes Google-Dienstkonto.
Neuen GKE Enterprise-Cluster und zugehörige Dienste vorbereiten
Umgebungsvariablen einrichten
Linux und Mac
export PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=kf-cluster export COMPUTE_ZONE=us-central1-a export COMPUTE_REGION=us-central1 export CLUSTER_LOCATION=${COMPUTE_ZONE} # Replace ZONE with REGION to switch export NODE_COUNT=4 export MACHINE_TYPE=e2-standard-4 export NETWORK=default export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=kf-cluster export DOCKER_SERVER=YOUR_DOCKER_SERVER_URL export SA_NAME=${CLUSTER_NAME}-sa export SA_EMAIL=${SA_NAME}@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Windows PowerShell
Set-Variable -Name PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_NAME -Value kf-cluster Set-Variable -Name COMPUTE_ZONE -Value us-central1-a Set-Variable -Name COMPUTE_REGION -Value us-central1 Set-Variable -Name CLUSTER_LOCATION -Value $COMPUTE_ZONE # Replace ZONE with REGION to switch Set-Variable -Name NODE_COUNT -Value 4 Set-Variable -Name MACHINE_TYPE -Value e2-standard-4 Set-Variable -Name NETWORK -Value default Set-Variable -Name CLUSTER_PROJECT_ID -Value YOUR_PROJECT_ID Set-Variable -Name CLUSTER_NAME -Value kf-cluster Set-Variable -Name DOCKER_SERVER -Value YOUR_DOCKER_SERVER_URL Set-Variable -Name SA_NAME -Value ${CLUSTER_NAME}-sa Set-Variable -Name SA_EMAIL -Value ${SA_NAME}@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Dienstkonto einrichten
Erstellen Sie das Google Cloud-Dienstkonto (GSA) und den Dienstkontoschlüssel, die für die Builds zum Lesen/Schreiben aus Container Registry verwendet werden. Dieser Schritt unterscheidet sich, wenn Sie eine andere Container-Registry verwenden, da diese könnte eine andere Methode zum Abrufen der Anmeldedaten für den Zugriff auf die Registry haben.
Erstellen Sie das von Kf verwendete Dienstkonto:
gcloud beta iam service-accounts create ${SA_NAME} \ --project=${CLUSTER_PROJECT_ID} \ --description="gcr.io admin for ${CLUSTER_NAME}" \ --display-name="${CLUSTER_NAME}"
Weisen Sie dem Dienstkonto die Rolle
storage.admin
zu, die zum Lesen/Schreiben aus Container Registry erforderlich ist:gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \ --member="serviceAccount:${SA_NAME}@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com" \ --role="roles/storage.admin"
Erstellen Sie den Dienstkontoschlüssel:
temp_dir=$(mktemp -d)
key_path=${temp_dir}/key.json
gcloud iam service-accounts keys create --iam-account ${SA_EMAIL} ${key_path}
key_json=$(cat ${key_path})
rm -rf ${temp_dir}
Softwareabhängigkeiten auf dem Cluster installieren
Installieren Sie Anthos Service Mesh Version 1.17.4-asm.2+config1.
Öffnen Sie die Anthos Service Mesh-Installationsanleitung.
Nach der Installation von Anthos Service Mesh müssen Sie ein Ingress-Gateway mithilfe der Gateway-Installationsanleitung erstellen.
Legen Sie in GKE auf VMware die
loadBalancerIP
auf eine IP-Adresse fest, die dem Cluster zugewiesen ist, wie unter Externe IP-Adressen für GKE auf VMware konfigurieren beschrieben.
Installieren Sie Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.47.1/release.yaml"
Kf installieren
Installieren Sie die Kf-Befehlszeile:
Linux
Mit diesem Befehl wird die Kf-Befehlszeile für alle Nutzer im System installiert. Folgen Sie der Anleitung auf dem Cloud Shell-Tab, um Kf nur für die eigene Nutzung zu installieren.
gsutil cp gs://kf-releases/v2.11.21/kf-linux /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Mac
Mit diesem Befehl wird
kf
für alle Nutzer im System installiert.gsutil cp gs://kf-releases/v2.11.21/kf-darwin /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Cloud Shell
Durch diesen Befehl wird
kf
auf Ihrer Cloud Shell-Instanz installiert, wenn Siebash
verwenden. Für andere Shells muss die Anleitung möglicherweise geändert werden.mkdir -p ~/bin
gsutil cp gs://kf-releases/v2.11.21/kf-linux ~/bin/kf
chmod a+x ~/bin/kf
echo "export PATH=$HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
Windows
Mit diesem Befehl wird
kf
in das aktuelle Verzeichnis heruntergeladen. Fügen Sie es dem Pfad hinzu, wenn Sie es von außerhalb des aktuellen Verzeichnisses aufrufen möchten.gsutil cp gs://kf-releases/v2.11.21/kf-windows.exe kf.exe
Installieren Sie den Operator:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.11.21/operator.yaml"
Konfigurieren Sie den Operator für Kf:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.11.21/kfsystem.yaml"
Kubernetes-Secret für Docker-Anmeldedaten erstellen
Erstellen Sie im Kf-Namespace ein Kubernetes-Secret für die Docker-Anmeldedaten, die Sie oben unter Dienstkonto einrichten erstellt haben. Patchen Sie dann das Kubernetes-Secret für subresource-apiserver
-Deployments für Quell-Uploads.
Aktivieren und aktualisieren Sie den Kf-Operator, um Container Registry als die Container-Registry zu verwenden.
export CONTAINER_REGISTRY=gcr.io/${CLUSTER_PROJECT_ID}
kubectl patch kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': true, 'config': {'spaceContainerRegistry':'${CONTAINER_REGISTRY}'}}}]"
Prüfen Sie, ob der Namespace
kf
vom Kf-Operator erstellt wurde. Dies kann einige Minuten dauern.kubectl get namespace kf
Erstellen Sie ein Kubernetes-Secret für die Verwendung mit Docker-Registries.
export secret_name=kf-gcr-key-${RANDOM}
kubectl -n kf create secret docker-registry ${secret_name} \ --docker-username=_json_key --docker-server ${DOCKER_SERVER} \ --docker-password="${key_json}"
Aktualisieren Sie den Kf-Operator, um das Secret anzugeben, das Docker-Anmeldedaten enthält.
kubectl patch kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'config': {'secrets':{'build':{'imagePushSecrets':'${secret_name}'}}}}}]"
Installation prüfen
kf doctor --retries=20