Configuração local do Kubernetes?

Configuração local do Kubernetes?

Gostaria de saber como configurar um cluster kubernetes no meu Ubuntu 20 DPS, quer dizer, instalei o docker e o kubeadm, sei fazer uma implantação, serviço e pouco de ingresso, usei um cluster kubernetes já configurado (aks)

Preciso configurar meu dps para EXPOR alguns aplicativos da web (sites, apis, cdn etc). Quais etapas preciso para configurar o kubernetes? como exponho um determinado site em um sub DNS específico (por exemplo, um domínio de terceiro nível: trd.mysite.com)

Preciso instalar alguns complementos como nginx-controller, metallb e flannel? Não entendo essas coisas de redes, também estou interessado em um curso/tutorial, por favor me ajude, obrigado!

EDIT: estes são meus yamls, por enquanto eu simplesmente quero expor um webapp no ​​domínio principal (xxxx.com), então adicionarei uma API REST interna e outro webapp que usará a API restante e será exposto em um domínio de 3º nível ( aaaa.xxxxx.com) http://www.mediafire.com/file/c7qwouqri441wek/Kube.zip/file

Responder1

Ok, então olhe. Para poder executar o servidor com sucesso, você precisará de:

1. janela de encaixe

2.Se preferir instale usandokubeadm- você precisa dos pacotes Kubernetes abaixo. Discutimos nesta resposta apenas a maneira kubeadm. Consulte a documentação interna para outras ferramentas.

Caso contrário, você pode usar, por exemplominikubo,Kubespray,tipo. Eu gosto de minikube e gentil.

  • kind é uma ferramenta para executar clusters locais do Kubernetes usando “nós” de contêiner Docker. kind foi projetado principalmente para testar o próprio Kubernetes, mas pode ser usado para desenvolvimento local ou CI.
  • MiniKube é geralmente a primeira tecnologia Kubernetes encontrada quando alguém deseja começar (a documentação oficial do Kubernetes oferece um tutorial para implantar seu primeiro cluster usando miniKube). É uma solução muito simples de instalar no seu laptop e foi projetada para aprendizado e teste. Quando iniciado, ele implantará um cluster de nó único (o menor tamanho).

Você pode ler sobre todas as ferramentas aqui:

3. CNI- para uma rede adequada dentro do seu cluster.

Existem dezenas de plugins CNI, você deve escolher algo.

Os mais populares são Flanela e Calico. Às vezes (dependendo de suas necessidades), você pode instalarCanal. Resumindo - você está instalando simultaneamente o Calico paraPolíticas de Rede+ Flanela como CNI regular para networking.

Aqui fica a dica importante! Para instalar o CNI corretamente - você deve escolhê-lo antecipadamente antes da criação do cluster. Isso ocorre porque você precisa iniciar o cluster com --pod-network-cidr=o sinalizador adequado.

  • kubeadm init --pod-network-cidr=10.244.0.0/16para flanela
  • kubeadm init --pod-network-cidr=192.168.0.0/16para chita
  1. EntradaeControladores de entrada

Um objeto API que gerencia o acesso externo aos serviços em um cluster, normalmente HTTP.

O Ingress pode fornecer balanceamento de carga, terminação SSL e hospedagem virtual baseada em nome.

Para que o recurso Ingress funcione, o cluster deve ter umcontrolador de entradacorrendo.

Lista completa de diferentes controladores de entrada:Controladores de entrada. Matriz de comparação éaqui

os mais populares:Controlador de entrada Nginx, controlador de ingresso Kubernetes (OOB, baseado também em nginx. Mas esses são diferentes), Traefik


Etapas para criar o cluster:

Você deve Untaint o master para poder executar pods nele. Sem isso você não conseguirá executar pods em seu master.

kubectl taint nodes --all node-role.kubernetes.io/master-

Responder2

antes de ler tudo isso, dê uma olhada no kubespray, que usa ansbile para criar clusters para você. No entanto, se você quiser saber como o kubernetes funciona nos bastidores, siga o restante da resposta.

O primeiro passo para configurar um cluster Kubernetes é conhecer os componentes e como eles funcionam.
Simplesmente instalar o kubeadm não ativará um cluster. Você deve instalar todos os componentes necessários para suas necessidades antes de implantar seus arquivos yaml.

aqui está um link da página do github, ele usa o kubeadm para ativar um cluster inteiro do Kubernetes com 3 nós mestres e quantos nós de trabalho você desejar.
nota: ele usa versões mais antigas, mas é uma boa referência para aprender componentes do Kubernetes. certifique-se de inspecionar seus scripts em relação à criação de yaml para componentes importantes do cluster e também ler as especificações dos componentes do cluster sobre o que eles fazem.
https://github.com/cookeem/kubeadm-ha/blob/master/v1.11/README.md
se quiser expor aplicativos da web em seu cluster em um domínio, você precisará instalar o gerenciador do controlador de entrada, que permite criar recursos de entrada.
aqui está um exemplo de yaml de entrada dos documentos do Kubernetes
https://kubernetes.io/docs/concepts/services-networking/ingress/
se você quiser fazer https com certificados válidos, você pode usar segredos do kubernetes ou configurar o gerenciador de certificados em seu cluster para permitir a criptografia automática de aquisição e renovação.
Ambas as opções estão bem documentadas e tudo que você precisa fazer é fazer uma pesquisa no Google para descobrir como fazer seu recurso de entrada usa esses certificados,
certifique-se de que seu domínio aponte para o endereço IP público de um nó do cluster (trabalhador ou mestre)

metallb é usado com clusters locais para fornecer o tipo de serviço de balanceador de carga que os provedores de nuvem possuem integrados

flannel é um plug-in de rede que fornece rede para seu cluster,
se você deseja que seus pods possam se comunicar entre si, você deve ter um plug-in de rede cni, como flanela, chita ou qualquer outro plug-in compatível,
pense em flanela como o switch de rede do seu cluster

informação relacionada