
Me gustaría saber como configurar un cluster de kubernetes en mi Ubuntu 20 DPS o sea, tengo instalado docker y kubeadm se como hacer un despliegue, servicio y poco de ingreso, he usado un cluster de kubernetes ya configurado (aks)
Necesito configurar mi dps para EXPONER algunas aplicaciones web (sitios web, apis, cdn, etc.). ¿Qué pasos debo seguir para configurar Kubernetes? cómo expongo un determinado sitio web en un sub dns específico (por ejemplo, un dominio de tercer nivel: trd.mysite.com)
¿Necesito instalar algunos complementos como nginx-controller, metallb y flannel? No entiendo estas cosas de redes, también estoy interesado en un curso/tutorial por favor ayúdenme ¡gracias!
EDITAR: estos son mis yamls, por ahora simplemente quiero exponer una aplicación web en el dominio principal (xxxx.com), luego agregaré una API REST interna y otra aplicación web que usará la API restante y la expondré en un dominio de tercer nivel ( aaa.xxxxx.com) http://www.mediafire.com/file/c7qwouqri441wek/Kube.zip/file
Respuesta1
Bien, entonces mira. Para poder ejecutar correctamente el servidor necesitará:
1. estibador
2.Si prefiere instalar usandokubeadm- Necesita los siguientes paquetes de Kubernetes. En esta respuesta solo discutimos la forma kubeadm. Consulte la documentación interna para obtener otras herramientas.
De lo contrario puedes usar por ejemplominikube,kubespray,amable. Me gusta el minikube y amable.
- kind es una herramienta para ejecutar clústeres locales de Kubernetes utilizando “nodos” de contenedores Docker. kind fue diseñado principalmente para probar el propio Kubernetes, pero puede usarse para desarrollo local o CI.
- MiniKube suele ser la primera tecnología de Kubernetes que se encuentra cuando alguien quiere comenzar (la documentación oficial de Kubernetes ofrece un tutorial para implementar su primer clúster usando miniKube). Es una solución muy sencilla de instalar en su computadora portátil y está diseñada para aprender y probar. Cuando se inicie, implementará un clúster de un solo nodo (el tamaño más pequeño).
Puedes leer sobre todas las herramientas aquí:
- MiniKube, Kubeadm, Kind, K3S, ¿cómo empezar con Kubernetes?
- ¿Existe una diferencia importante entre Minikube y Kind?
3. CNI- para una conexión en red adecuada dentro de su clúster.
Hay docenas de complementos CNI, deberías elegir algo.
- La lista completa está aquí:Redes de clústeres
- tabla de comparación:https://kubedex.com/kubernetes-network-plugins/
Los más populares son la franela y el calicó. A veces (depende de tus necesidades), puedes instalarCanal. En resumen: está instalando simultáneamente Calico paraPolíticas de red+ Franela como CNI habitual para networking.
¡Aquí está el consejo importante! Para instalar CNI correctamente, debe elegirlo con antelación antes de la creación del clúster. Esto se debe a que debe iniciar el clúster con --pod-network-cidr=
el indicador adecuado.
kubeadm init --pod-network-cidr=10.244.0.0/16
para franelakubeadm init --pod-network-cidr=192.168.0.0/16
para calicó
Un objeto API que gestiona el acceso externo a los servicios de un clúster, normalmente HTTP.
Ingress puede proporcionar equilibrio de carga, terminación SSL y alojamiento virtual basado en nombres.
Para que el recurso Ingress funcione, el clúster debe tener uncontrolador de ingresocorrer.
Lista completa de diferentes controladores de ingreso:Controladores de ingreso. La matriz de comparación esaquí
los más populares:Controlador de entrada Nginx, controlador de ingreso de Kubernetes (OOB, basado también en nginx. Pero estos son diferentes), Traefik
Pasos para crear el clúster:
- Puedes utilizar el siguiente excelente artículo.Configuración de Kubernetes de un solo nodo. Empiece desde allí: le muestra todos los pasos correctamente.
- puedes usar mi respuesta:El servidor API de Kubernetes no se inicia en un único clúster de Kubeadm. Esta respuesta le proporciona instrucciones detalladas paso a paso sobre cómo activar un clúster usando kubeadm. Una nota.
- documentación oficial:Creando un clúster con kubeadm
Deberías desmantelar el maestro para poder ejecutar pods en él. Sin esto, no podrás ejecutar pods en tu maestro.
kubectl taint nodes --all node-role.kubernetes.io/master-
Respuesta2
Antes de leer todo esto, consulte kubespray, que utiliza ansbile para crear clústeres. Sin embargo, si desea saber cómo funciona Kubernetes internamente, siga el resto de la respuesta.
El primer paso para configurar un clúster de Kubernetes es conocer los componentes y cómo funcionan.
Simplemente instalar kubeadm no activará un clúster; debe instalar todos los componentes necesarios para sus necesidades antes de implementar sus archivos yaml.
aquí hay un enlace a la página de github, usa kubeadm para poner en marcha un clúster de kubernetes completo con 3 nodos maestros y tantos nodos trabajadores como desee.
nota: utiliza versiones anteriores pero es una buena referencia para aprender los componentes de Kubernetes. asegúrese de inspeccionar sus scripts con respecto a la creación de yaml en busca de componentes importantes del clúster y también lea los detalles de los componentes del clúster sobre lo que hacen.
https://github.com/cookeem/kubeadm-ha/blob/master/v1.11/README.md
Si desea exponer aplicaciones web en su clúster en un dominio, necesita instalar el administrador del controlador de ingreso, que le permite crear recursos de ingreso.
aquí hay un ejemplo de ingreso de yaml de documentos de kubernetes
https://kubernetes.io/docs/concepts/services-networking/ingress/
Si desea hacer https con certificados válidos, puede usar los secretos de Kubernetes o configurar el administrador de certificados en su clúster para la adquisición y renovación automática de cifrado.
Ambas opciones están bien documentadas y todo lo que necesita hacer es hacer una búsqueda en Google para saber cómo hacerlo. su recurso de entrada utilice estos certificados
y asegúrese de que su dominio apunte a la dirección IP pública de un nodo del clúster (trabajador o maestro)
metallb se utiliza con clústeres locales para proporcionar el tipo de servicio de equilibrador de carga que los proveedores de la nube tienen integrado
flannel es un complemento de red que proporciona redes para su clúster.
Si desea que sus pods puedan comunicarse entre sí, debe tener un complemento de red cni como flannel, calico o cualquier otro complemento compatible.
Considere flannel como el conmutador de red de su clúster.