Chino | Inglés
ilustrar:

git checkout v1.30.2git checkout v1.29.2git checkout v1.29.1git checkout v1.28.2git checkout v1.27.2git checkout v1.25.9git checkout v1.25.4git checkout v1.25.2git checkout v1.25.0git checkout v1.24.2git checkout v1.24.0Nota:
images.properties para indicar la versión de espejo requerida, y puede enviar la solicitud de extracciónkubeadm config images list --kubernetes-version v1.30.2Configure los recursos de CPU y memoria para Kubernetes, y se recomienda asignar 4GB o más memoria.

Descargue la imagen requerida para Kubernetes desde el servicio Alibaba Cloud Mirror
Ejecute el siguiente script en su Mac
./load_images.shEn Windows, usa PowerShell
.load_images.ps1ilustrar:
Set-ExecutionPolicy RemoteSigned en PowerShell "ejecutar como administrador".images.properties Encienda Kubernetes y espere a que Kubernetes comience a ejecutar 
CONSEJOS :
En Mac:
Si hay un problema durante la implementación de Kubernetes, puede obtener información de registro en tiempo real a través del registro de aplicaciones de escritorio Docker:
pred= ' process matches ".*(ocker|vpnkit).*"
|| (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker") '
/usr/bin/log stream --style syslog --level=debug --color=always --predicate " $pred "En Windows:
Si hay un problema durante la implementación de Kubernetes, puede ver el servicio de inicio de sesión de Docker.
Diagnóstico de problemas :
Si ve que Kubernetes siempre está comenzando, consulte
rm -fr '~/Library/Group Containers/group.com.docker/pki'Método de contenedor de entrada de K8s
Cómo ingresar K8 con múltiples contenedores en una cápsula
kubectl --namespace=kube-system exec -it kube-dns-1336009800-15b1h --container nginx -- sh
o
kubectl --namespace=kube-system exec -it kube-dns-1336009800-15b1h -c nginx -- sh
Nota: -Namespace es el espacio de nombres Kube -DNS es el nombre de la cápsula, y -c o -container es el nombre de uno de los contenedores en la cápsula
Operación opcional: cambie el contexto de Kubernetes que ejecutan a Docker-desktop (la versión anterior del contexto era Docker-For-desktop)
kubectl config use-context docker-desktopVerificar el estado del clúster de Kubernetes
kubectl cluster-info
kubectl get nodeskubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yamlo
kubectl apply -f kubernetes-dashboard.yamlVerifique el estado de la aplicación Kubernetes-Dashboard
kubectl get pod -n kubernetes-dashboardHabilitar el agente de acceso al servidor API
kubectl proxyAccess Panel de acceso a Kubernetes a través de la siguiente URL
http: // localhost: 8001/api/v1/namespaces/kubernetes-dashboard/servicios/https: kubernetes-dashboard:/proxy/
Autorizar la cuenta de servicio predeterminada kube-system
kubectl apply -f kube-system-default.yamlPara el entorno Mac
TOKEN= $( kubectl -n kube-system describe secret default | awk ' $1=="token:"{print $2} ' )
kubectl config set-credentials docker-desktop --token= " ${TOKEN} "
echo $TOKENPara el entorno de Windows
$TOKEN = (( kubectl - n kube - system describe secret default | Select - String "token : ") - split " + ")[ 1 ]
kubectl config set-credentials docker-desktop --token=" ${TOKEN} "
echo $TOKEN 
Seleccione un token
Ingrese la salida de contenido de la consola anterior
O seleccione el archivo kubeConfig , la ruta es la siguiente:
Mac: $HOME/.kube/config
Win: %UserProfile%.kubeconfig
Haga clic para iniciar sesión e ingrese el panel de Kubernetes
Nota: Si prueba Istio, no necesita instalar Ingress
Instrucciones de instalación de la dirección de origen
verificar
kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginxImplementar la solicitud de prueba, consulte el artículo de la comunidad para obtener más detalles
kubectl create -f sample/apple.yaml
kubectl create -f sample/banana.yaml
kubectl create -f sample/ingress.yamlAplicación de muestra de prueba
$ curl -kL http://localhost/apple
apple
$ curl -kL http://localhost/banana
bananaEliminar la aplicación de muestra
kubectl delete -f sample/apple.yaml
kubectl delete -f sample/banana.yaml
kubectl delete -f sample/ingress.yamlkubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.0/deploy/static/provider/cloud/deploy.yamlo
kubectl delete -f ingress-nginx-controller.yamlPuede instalar Helm V3 de acuerdo con el documento https://helm.sh/docs/intro/install/ en China, ya que el nodo CDN de Helm usa Google Cloud, es posible que no sea accesible. Puede consultar el tema oficial existente: Helm/Helm#7028
# Use homebrew on Mac
brew install helm
# Add helm repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
# Update charts repo
helm repo update Si hay un problema de compatibilidad de la versión durante la instalación posterior de componentes que usan Helm, puede consultar通过二进制包安装para instalar la versión coincidente
# Use Chocolatey on Windows
# 注:安装的时候需要保证网络能够访问googleapis这个域名
choco install kubernetes-helm
# Change helm repo
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
# Update charts repo
helm repo updateInstalar WordPress
helm install wordpress stable/wordpressConsulte el estado de publicación de WordPress
helm status wordpressDesinstalar WordPress Publish
helm uninstall wordpressNota: El conflicto de puerto predeterminado entre Istio Ingress Gateway e Ingress. Retire el ingreso y realice las siguientes pruebas.
Istio se puede instalar de acuerdo con la documentación https://istio.io/docs/setup/getting-started/
Por ejemplo, descargue istio versión 1.22.1 (otras versiones más recientes se pueden reemplazar por sí mismas) y ejecute el siguiente comando:
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.22.1 sh -
cd istio-1.22.1
export PATH= $PWD /bin: $PATHNota: El entorno de Windows no se ha probado rigurosamente.
En Windows, puede descargar manualmente el paquete de instalación de Istio o copiar getLatestIstio.ps1 al directorio donde desea descargar Istio y ejecutar - Nota: Modificado de acuerdo con el script de instalación proporcionado por la comunidad
.getLatestIstio.ps1istioctl install --set profile=demo -ykubectl get pods -n istio-systemdefault kubectl label namespace default istio-injection=enabled
kubectl get namespace -L istio-injectionConsulte https://istio.io/docs/examples/bookinfo/
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yamlVer recursos de aplicación de muestra
kubectl get svc,podConfirmar que la aplicación de muestra se está ejecutando
kubectl exec -it $( kubectl get pod -l app=ratings -o jsonpath= ' {.items[0].metadata.name} ' ) -c ratings -- curl productpage:9080/productpage | grep -o " <title>.*</title> "Crear una puerta de entrada
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yamlVer la configuración de la puerta de enlace
kubectl get gatewayConfirmar que la aplicación de muestra es accesible
export GATEWAY_URL=localhost:80
curl -s http:// ${GATEWAY_URL} /productpage | grep -o " <title>.*</title> "Se puede acceder a través del navegador
http: // localhost/productPage
samples/bookinfo/platform/kube/cleanup.shistioctl manifest generate --set profile=demo | kubectl delete -f -