Instalación de clúster de ranchero

1. ¿Qué es Ranchero?

Rancher es una herramienta de administración de Kubernetes para implementar y ejecutar clústeres en cualquier lugar y con cualquier proveedor.

Rancher puede aprovisionar Kubernetes desde un proveedor de alojamiento, aprovisionar nodos de cómputo y luego instalar Kubernetes en esos nodos, o importar un clúster de Kubernetes existente que se ejecute en cualquier lugar.

Rancher agrega un valor significativo a Kubernetes, comenzando con la autenticación centralizada y el control de acceso basado en roles (RBAC) para todos los clústeres, lo que permite a los administradores globales controlar el acceso a los clústeres desde una sola ubicación.

Luego, permite el monitoreo detallado y las alertas del clúster y sus recursos, envía registros a proveedores externos y se integra directamente con Helm a través del catálogo de aplicaciones. Si tiene un sistema CI/CD externo, puede conectarlo a Rancher, pero si no lo tiene, Rancher incluso incluye Fleet para ayudarlo a implementar y actualizar automáticamente las cargas de trabajo.

Rancher es una plataforma completa de administración de contenedores de Kubernetes que le brinda las herramientas para ejecutar Kubernetes con éxito en cualquier lugar.

2. Por qué elegir Rancher

Existen interfaces de administración de kubernetes como kuboard en China, pero no resuelven la complejidad que presenta el uso de kubernetes, como CI/CD, administración de múltiples clústeres y administración de autoridad de cuentas que se pueden integrar con la plataforma de administración de clústeres k8s.

Hay muchas búsquedas en Internet, en comparación, solo Red Hat OpenShift Kubernetes Engine (OpenShit), VMware Tanzu y SUSE Rancher, el único que se puede usar de forma gratuita es Rancher, por lo que no hay otra opción.

3. Implementar el servidor Rancher

Rancher admite varios métodos de implementación:

  1. AWS (utiliza Terraform)
  2. AWS Marketplace (utiliza Amazon EKS)
  3. Azure (usa Terraform)
  4. DigitalOcean (usa Terraform)
  5. GCP (usa Terraform)
  6. Nube de Hetzner (usa Terraform)
  7. Vagabundo
  8. Equinix Metal
  9. Outscale (usa Terraform)

Aquí elegimos el método de implementación manual

3.1 Requisitos de instalación

Prepare dos servidores de la versión Ubuntu LTS, aquí use el clúster k3s para ejecutar el nodo de administración de Rancher, los requisitos de recursos de k3s son los siguientes:

Escala de implementación Número de clústeres administrados El número de nodos administrados Requisitos de vCPU k3s requisitos de memoria k3s requisitos de la base de datos k3s
Pequeño Máximo 150 Máximo 1500 2 8GB 2 núcleos, 4 GB + 1000 IOPS
Medio hasta 300 Máximo 3000 4 16 GB 2 núcleos, 4 GB + 1000 IOPS
Grande Máximo 500 Máximo 5000 8 32GB 2 núcleos, 4 GB + 1000 IOPS
extragrande Máximo 1000 hasta 10,000 dieciséis 64 GB 2 núcleos, 4 GB + 1000 IOPS
XX-Grande Máximo 2000 Máximo 20.000 32 128GB 2 núcleos, 4 GB + 1000 IOPS

3.2 Preparación de la instalación, deshabilitar el firewall

systemctl disable ufw
systemctl stop ufw
ufw reset
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

3.3 Instalar k3s

Instale el clúster k3s del nodo de administración de Rancher en dos servidores. El comando del primer nodo se ejecuta correctamente. Después de que el servicio k3s se haya iniciado correctamente, ejecútelo en el segundo nodo. El segundo nodo se unirá automáticamente y creará un clúster. Para el número de versión, puede elegir la versión anterior de la última versión estable. Después de probar la última versión estable, no se puede descargar a través de la imagen espejo en China.

Además, aunque k3s ha lanzado la versión 1.27, la versión más alta de k3s admitida por Rancher sigue siendo la serie 1.26, por lo que la versión de la serie 1.26 aún está seleccionada.

3.3.1 Instale K3 usando el script del sitio web espejo doméstico

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION="v1.26.5+k3s1" K3S_DATASTORE_ENDPOINT='postgres://k3s:[email protected]:5432/k3s?sslmode=disable' sh -s - server --token=k3stoken --tls-san 192.168.6.247 --tls-san 192.168.6.248 --tls-san rancher.myexample.com

La respuesta del comando es la siguiente:

[sudo] password for ubuntu: 
[INFO]  Using v1.26.5+k3s1 as release
[INFO]  Downloading hash rancher-mirror.rancher.cn/k3s/v1.26.5-k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary rancher-mirror.rancher.cn/k3s/v1.26.5-k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s```

3.3.2 Instalar K3 sin conexión

Debido al problema del retraso en la sincronización en el sitio web espejo doméstico, el número de versión menor más reciente no es compatible en este momento, y el método de instalación fuera de línea de K3 también se proporciona aquí.

3.3.2.1 Crear un directorio localmente para colocar el paquete de instalación fuera de línea

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/

3.3.2.2 Configurar archivo ejecutable k3s

Descargue la versión correspondiente del archivo binario k3s de la página https://github.com/k3s-io/k3s/releases, colóquelo en /usr/local/binel directorio y agregue permisos ejecutables

chmod +x /usr/local/bin/k3s

3.3.2.3 Configurar el script de instalación install.sh

Descargue el script de instalación de get.k3s.io , asígnele un nombre install.shy agregue permisos ejecutables

chmod +x install.sh

3.3.2.4 Instalar usando scripts

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='server --token=k3stoken --tls-san 192.168.6.247 --tls-san 192.168.6.248 --tls-san rancher.myexample.com' \
K3S_DATASTORE_ENDPOINT='postgres://k3s:[email protected]:5432/k3s?sslmode=disable' \
./install.sh

3.4 Configurar uno de los nodos para poder acceder al clúster k3s

sudo -s
mkdir -p /home/ubuntu/.kube
sudo cp /etc/rancher/k3s/k3s.yaml /home/ubuntu/.kube/config
chmod 600 /home/ubuntu/.kube/config
chown ubuntu:ubuntu /home/ubuntu/.kube/config
export KUBECONFIG=~/.kube/config
echo "export KUBECONFIG=~/.kube/config" >> /home/ubuntu/.bashrc

3.5 Instalar timón

Referencia https://github.com/helm/helm/releases

3.6 Agregar repositorio de timón de Rancher

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest

3.7 Crear espacio de nombres

kubectl create namespace cattle-system

3.8 Instalar definiciones de recursos personalizados de cert-manager

Si tiene problemas para acceder a github en el servidor, puede descargar el archivo, cargarlo en el servidor y reemplazar la URL https con la ruta relativa del archivo. El número de versión debe ser el mismo que el administrador de certificados instalado por timón debajo

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.2/cert-manager.crds.yaml

Respuesta de comando para ejecución exitosa

customresourcedefinition.apiextensions.k8s.io/certificaterequests.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/certificates.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/challenges.acme.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/clusterissuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/issuers.cert-manager.io created
customresourcedefinition.apiextensions.k8s.io/orders.acme.cert-manager.io created

3.9 Agregar repositorio de helm de cert-manager

helm repo add jetstack https://charts.jetstack.io
helm repo update

3.10 Instalar el administrador de certificados

El número de versión se puede seleccionar de la última versión estable de acuerdo con los documentos oficiales o el almacén de código abierto

helm install cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.12.2

Respuesta de comando para una instalación exitosa

NAME: cert-manager
LAST DEPLOYED: Tue Jul 11 06:32:41 2023
NAMESPACE: cert-manager
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
cert-manager v1.11.4 has been deployed successfully!

In order to begin issuing certificates, you will need to set up a ClusterIssuer
or Issuer resource (for example, by creating a 'letsencrypt-staging' issuer).

More information on the different types of issuers and how to configure them
can be found in our documentation:

https://cert-manager.io/docs/configuration/

For information on how to configure cert-manager to automatically provision
Certificates for Ingress resources, take a look at the `ingress-shim`
documentation:

https://cert-manager.io/docs/usage/ingress/

3.11 Instalar ganadero

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=rancher.myexample.com \
  --set replicas=1 \
  --set bootstrapPassword=admin

Respuesta de comando para una instalación exitosa

NAME: rancher
LAST DEPLOYED: Mon Apr 10 03:01:09 2023
NAMESPACE: cattle-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Rancher Server has been installed.

NOTE: Rancher may take several minutes to fully initialize. Please standby while Certificates are being issued, Containers are started and the Ingress rule comes up.

Check out our docs at https://rancher.com/docs/

If you provided your own bootstrap password during installation, browse to https://rancher.51bsi.com to get started.

If this is the first time you installed Rancher, get started by running this command and clicking the URL it generates:

echo https://rancher.myexample.com/dashboard/?setup=$(kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{
     
     {.data.bootstrapPassword|base64decode}}')

To get just the bootstrap password on its own, run:

kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{
    
    {.data.bootstrapPassword|base64decode}}{
    
    { "\n" }}'

Happy Containering!

Después de que la instalación sea exitosa, toma alrededor de 2 a 3 minutos y luego visite el servicio de rancher https://rancher.myexample.com/dashboard/?setup=admin

4. Comandos comunes de inspección de servicio

4.1 Verifique el estado de ejecución del servicio cert-manager

ubuntu@24:~$ kubectl get po -n cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-cainjector-56bbdd5c47-2gtq5   1/1     Running   0          96s
cert-manager-64f9f45d6f-8qxn6              1/1     Running   0          96s
cert-manager-webhook-d4f4545d7-cxnhf       1/1     Running   0          96s

4.2 Ver registros de servicio

ubuntu@24:~$ kubectl -n cert-manager logs cert-manager-webhook-d4f4545d7-cxnhf
I0711 07:13:13.364269       1 feature_gate.go:249] feature gates: &{
    
    map[]}
W0711 07:13:13.364365       1 client_config.go:618] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0711 07:13:13.370407       1 webhook.go:129] cert-manager "msg"="using dynamic certificate generating using CA stored in Secret resource" "secret_name"="cert-manager-webhook-ca" "secret_namespace"="cert-manager"
I0711 07:13:13.370665       1 server.go:133] cert-manager/webhook "msg"="listening for insecure healthz connections" "address"=":6080"
I0711 07:13:13.370731       1 server.go:197] cert-manager/webhook "msg"="listening for secure connections" "address"=":10250"
I0711 07:13:14.376507       1 dynamic_source.go:266] cert-manager/webhook "msg"="Updated cert-manager webhook TLS certificate" "DNSNames"=["cert-manager-webhook","cert-manager-webhook.cert-manager","cert-manager-webhook.cert-manager.svc"]

4.3 Verifique el estado del servicio del espacio de nombres del sistema de ganado

ubuntu@24:~$ kubectl get pods --namespace cattle-system
NAME                               READY   STATUS              RESTARTS   AGE
helm-operation-ggq22               2/2     Running             0          53s
helm-operation-mxqjg               0/2     Completed           0          2m52s
helm-operation-sftw8               0/2     Completed           0          74s
helm-operation-wbd4s               0/2     Completed           0          110s
rancher-7c5dbf46fc-8fb5v           1/1     Running             0          4m51s
rancher-7c5dbf46fc-l92kc           1/1     Running             0          4m50s
rancher-7c5dbf46fc-wmx8h           1/1     Running             0          4m50s
rancher-webhook-577b778f8f-9wzr5   0/1     ContainerCreating   0          9s

Ver el estado del servicio de todos los espacios de nombres

ubuntu@247:~$ kubectl get pods --all-namespaces
NAMESPACE                   NAME                                       READY   STATUS      RESTARTS   AGE
kube-system                 local-path-provisioner-76d776f6f9-lql4s    1/1     Running     0          110m
kube-system                 svclb-traefik-23008fd2-l67lp               2/2     Running     0          109m
kube-system                 helm-install-traefik-crd-lfjs8             0/1     Completed   0          110m
kube-system                 helm-install-traefik-brj48                 0/1     Completed   1          110m
kube-system                 coredns-59b4f5bbd5-ddvjp                   1/1     Running     0          110m
kube-system                 traefik-57c84cf78d-fhxlh                   1/1     Running     0          109m
kube-system                 metrics-server-68cf49699b-zmrqr            1/1     Running     0          110m
cert-manager                cert-manager-cainjector-7f47598f9b-rvlwj   1/1     Running     0          23m
cert-manager                cert-manager-55b858df44-52ls9              1/1     Running     0          23m
cert-manager                cert-manager-webhook-7d694cd764-n5vhc      1/1     Running     0          23m
cattle-system               rancher-7769775dfb-gcghz                   1/1     Running     0          22m
cattle-fleet-system         gitjob-85b85d5df8-n74sp                    1/1     Running     0          19m
cattle-fleet-system         fleet-controller-775cd6657c-zxfq2          1/1     Running     0          19m
cattle-system               helm-operation-mrzg8                       0/2     Completed   0          19m
cattle-system               helm-operation-7nqmg                       0/2     Completed   0          18m
cattle-system               rancher-webhook-788c48b988-82j77           1/1     Running     0          18m
cattle-system               helm-operation-h82mk                       0/2     Completed   0          18m
cattle-system               helm-operation-sfxnn                       0/2     Completed   0          17m
kube-system                 svclb-traefik-23008fd2-59psn               2/2     Running     0          16m
cattle-fleet-local-system   fleet-agent-7f8d499f-4m4fc                 1/1     Running     0          9m49s

4.4 Ver la implementación de Rancher

ubuntu@24:~$ kubectl -n cattle-system get deploy rancher
NAME      READY   UP-TO-DATE   AVAILABLE   AGE
rancher   1/1     1            1           5m42s

5. Desinstalar k3s

5.1 Ejecución de la desinstalación

sudo -s
/usr/local/bin/k3s-uninstall.sh
/usr/local/bin/k3s-agent-uninstall.sh

5.2 Eliminar los archivos y directorios correspondientes

rm -rf /etc/ceph /etc/cni /etc/kubernetes /etc/rancher /opt/cni /opt/rke  /run/secrets/kubernetes.io /run/calico        /run/flannel        /var/lib/calico        /var/lib/etcd        /var/lib/cni        /var/lib/kubelet        /var/lib/rancher       /var/log/containers        /var/log/kube-audit        /var/log/pods        /var/run/calico /var/lib/longhorn

5.3 Borrar los datos correspondientes en la base de datos

DROP TABLE public.kine;

Supongo que te gusta

Origin blog.csdn.net/xieshaohu/article/details/131661880
Recomendado
Clasificación