Como instalar um cluster Kubernetes no CentOS 8
- 1563
- 214
- Ms. Travis Schumm
O processo de instalação de um Cluster de Kubernetes sobre CENTOS 8 é quase semelhante ao de CENTOS 7 (que você pode passar por aqui), mas o processo aqui tem algumas mudanças. Essas mudanças, principalmente giram em torno da instalação de Docker.
Começando de CENTOS 8 (e por extensão RHEL 8), Docker agora foi substituído nativamente por Podman e Buildah quais são ferramentas de Chapéu vermelho. De fato, o pacote Docker foi removido do repositório de pacote padrão.
Com este movimento, o Chapéu vermelho A equipe pretende simplificar o processo de criação e uso de contêineres, sem precisar de permissões especiais, e ao mesmo tempo, mantendo a compatibilidade com as imagens do Docker e operando -as sem precisar de um daemon. Podman promete oferecer mais flexibilidade ao executar Kubernetes ambientes, mas o júri permanece lá fora.
Para este artigo, seguiremos o processo de instalação Kubernetes com um CENTOS 8 plataforma, executando em Docker-CE (Edição da comunidade). Em um artigo posterior, também percorreremos uma instalação semelhante, usando Podman para nossos recipientes.
Pré -requisitos
- Três servidores executando o CentOS 8 - 1 nó mestre e 2 nós do trabalhador.
- Recomenda -se que seus nós tenham pelo menos 2 CPUs com 2 GB de RAM ou mais por máquina. Este não é um requisito rigoroso, mas é amplamente impulsionado pelas necessidades do aplicativo que você pretende executar.
- Conectividade da Internet em todos os seus nós. Nós estaremos buscando Kubernetes e Docker pacotes do repositório. Da mesma forma, você precisará garantir que o gerenciador de pacotes DNF esteja instalado por padrão e possa buscar pacotes remotamente.
- Todos os seus nós também devem ser capazes de se conectar, em uma rede pública ou privada, o que estiver disponível.
- Você também precisará de acesso a uma conta com sudo ou privilégios de raiz. Neste tutorial, estarei usando minha conta raiz.
Precaução
A maioria dos nós geralmente vem com único MAC endereços, no entanto, em alguns casos únicos, alguns Máquinas virtuais pode ter endereços MAC idênticos. Portanto, é recomendável que você confirme que o Product_uuid e a MAC O endereço não é idêntico em nenhum dos nós.
Kubernetes usa esses valores para identificar exclusivamente os nós no cluster. Se esses valores não forem exclusivos para cada nó, o processo de instalação poderá falhar.
Para verificar o endereço MAC da interface de rede e compará -lo.
# link IP
Para verificar o Product_uuid e compare, execute o seguinte comando.
# cat/sys/classe/dmi/id/product_uuid
Arquitetura lógica
Nossa instalação foi projetada para ter o Nó mestre controlando o Nós do trabalhador. No final desta instalação, nossa arquitetura lógica parecerá algo assim.
Nó mestre - Esta máquina geralmente atua como o plano de controle e executa o banco de dados de cluster e o servidor de API (com o qual a CLI KUBECTL se comunica).
Nossos 3 nós Cluster de Kubernetes vai parecer algo assim:
Diagrama de cluster de KubernetesInstalação do cluster de Kubernetes no nó mestre
Para Kubernetes Para trabalhar, você precisará de um mecanismo de contêinerização. Como mencionado, estaremos usando Docker-CE.
As seguintes instituições serão realizadas em CentOS 8 Nó mestre.
Etapa 1: Prepare o nome do host, o firewall e o Selinux
Nas suas CentOS 8 Nó mestre, Defina o nome do host do sistema e atualize o DNS em seu /etc/hosts arquivo.
# hostnamectl set-hostname mestre nó # cat <> etc /hosts 192.168.0.47 Nó mestre 192.168.0.48 Node-1 Nó do trabalhador-1 192.168.0.49 nó-2-nó-2 eof
Em seguida, ping no seu Nó do trabalhador-1 e Nó do trabalhador-2 Para verificar se o seu arquivo host atualizado está funcionando corretamente usando o comando ping.
# ping 192.168.0.48 # ping 192.168.0.49
Em seguida, desativar Selinux, Como isso é necessário para permitir que os contêineres acessem o sistema de arquivos host, necessário para as redes de pod e outros serviços.
# setenforce 0
Contexto setEnforce para 0
Definir efetivamente o Selinux como permissivo, que efetivamente desativa o Selinux até a próxima reinicialização. Para desativá -lo completamente, use o comando abaixo e reinicie.
# sed -i - -sollow -symlinks 's/selinux = aplicativo/selinux = desativado/g'/etc/sysconfig/selinux # reinicialização
Kubernetes faz uso de várias portas para comunicação e acesso e essas portas precisam estar acessíveis a Kubernetes e não limitadas pelo firewall.
Portas KubernetesConfigure as regras do firewall nos portos.
# firewall-cmd --permanent --add-port = 6443/tcp # firewall-cmd --permanent --add-port = 2379-2380/tcp # firewall-cmd --permanent --add-port = 10250/tcp # firewall-cmd --permanent --add-port = 10251/tcp # firewall-cmd --permanent --add-port = 10252/tcp # firewall-cmd --permanent --add-port = 10255/tcp # firewall -CMD--Reload # modProbe BR_NETFILTER # echo '1'>/proc/sys/net/ponte/ponte-nf-call-iptables
Etapa 2: Instale Docker-CE no CentOS 8
Você precisará adicionar o Docker repositório primeiro, pois não está mais na lista de pacotes padrão usando o seguinte DNF Config-manager comando.
# dnf config-manager --add-repo = https: // download.Docker.com/linux/CentOS/Docker-CE.repo
Também instale contêiner.io Pacote disponível como um daemon que gerencia o ciclo de vida completo do contêiner de seu sistema host, desde a transferência e armazenamento de imagens até a execução e supervisão de contêineres a armazenamento de baixo nível a anexos de rede e além.
# dnf install https: // download.Docker.com/linux/CentOS/7/x86_64/estábulo/pacotes/contêinerd.io-1.2.6-3.3.EL7.x86_64.RPM
Agora instale a versão mais recente de um Docker-CE pacote.
# DNF Instale Docker-CE
Agora você pode ativar e iniciar o serviço do Docker.
# SystemCtl Ativar Docker # SystemCtl Start Docker
Etapa 3: Instale Kubernetes (Kubeadm) no CentOS 8
Em seguida, você precisará adicionar Kubernetes repositórios manualmente, pois não são instalados por padrão em CENTOS 8.
# gato < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF
KUBEADM Ajuda você a inicializar um cluster Kubernetes mínimo viável que está em conformidade com as práticas recomendadas. Com KUBEADM, Seu cluster deve passar nos testes de conformidade de Kubernetes.
KUBEADM Também suporta outras funções do ciclo de vida do cluster, como atualizações, rebaixamentos e gerenciamento de tokens de bootstrap. Kubeadm também é fácil de integração com outras ferramentas de orquestração, como Ansible e Terraform.
Com o pacote repo agora pronto, você pode seguir em frente e instalar KUBEADM pacote.
# dnf install kubeadm -y
Quando a instalação for concluída com êxito, ative e inicie o serviço.
# SystemCtl Ativar Kubelet # SystemCtl Iniciar Kubelet
Etapa 4: Crie um mestre de plano de controle com Kubeadm
O mestre de Kubernetes que age como o plano de controle Para o cluster, executa alguns serviços críticos necessários para o cluster. Como tal, o processo de inicialização fará uma série de pré -picadas para garantir que a máquina esteja pronta para executar o Kubernetes. Esses pré -conquistas expõem avisos e saem de erros. KUBEADM INIT Em seguida, downloads e instala os componentes do plano de controle do cluster.
Agora é hora de inicializar o mestre de Kubernetes, mas antes disso, você deve desativar a troca para executar “KUBEADM INIT“Command.
# swapoff -a
Inicialização Kubernetes Master é um processo completamente automatizado que é controlado pelo “KUBEADM INIT“Comando como mostrado.
# kubeadm initInicialize o mestre de Kubernetes
Em seguida, copie o seguinte comando e armazene -o em algum lugar, pois precisamos executar este comando nos nós do trabalhador posteriormente.
KUBEADM JUNTA 192.168.0.47: 6443 -TOKEN NU06LU.XRSUX0SS0IXTNMS5 \-Discovery-Token-Cer-Cert-Hash HA256: F996EA35R4353D342FDEA2997A1CF8CAEDDAFD6D4360D606DBC82314683478HJJMF7
Dica: Às vezes, o comando acima pode lançar erros sobre os argumentos passados, para evitar erros, você precisa remover o '\'
personagem e seu comando final ficarão assim.
# kubeadm Junte -se 192.168.0.47: 6443 -TOKEN NU06LU.XRSUX0SS0IXTNMS5 -Discovery Token-CA-Cert-Hash SHA256: F996EA35R4353D342FDEA2997A1CF8CAEDDAFD6D4360D606DBC82314683478HJJJMF7
Uma vez Kubernetes Inicializado com sucesso, você deve permitir que seu usuário comece a usar o cluster. Em nosso cenário, usaremos o usuário root. Você também pode iniciar o cluster usando o usuário sudo como mostrado.
Usar raiz, correr:
# mkdir -p $ home/.kube # cp -i/etc/kubernetes/admin.conf $ home/.kube/config # chown $ (id -u): $ (id -g) $ home/.kube/config
Para usar um Usuário habilitado para sudo, correr:
$ mkdir -p $ home/.kube $ sudo cp -i/etc/kubernetes/admin.conf $ home/.kube/config $ sudo chown $ (id -u): $ (id -g) $ home/.kube/config
Agora confirme que o Comando Kubectl é ativado.
# kubectl Get nósVerifique o status dos nós
Neste momento, você verá o status do nó mestre é 'Não está pronto'. Isso ocorre porque ainda estamos para implantar a rede de pod no cluster.
A rede POD é a rede de sobreposição para o cluster, que é implantada no topo da atual rede de nó. Ele foi projetado para permitir a conectividade em todo o pod.
Etapa 5: Configure sua rede de pod
Implantar o cluster de rede é um processo altamente flexível, dependendo de suas necessidades e há muitas opções disponíveis. Como queremos manter nossa instalação o mais simples possível, usaremos Weavenet plug -in que não requer nenhuma configuração ou código extra e fornece um endereço IP por pod, o que é ótimo para nós. Se você quiser ver mais opções, verifique aqui.
Esses comandos serão importantes para obter a configuração da rede POD.
# Exportar Kubever = $ (Kubectl Versão | Base64 | tr -d '\ n') # kubectl Aplicar -f "https: // nuvem.tecer.Works/K8s/Net?k8s-version = $ kubever "Configuração da rede de pod
Agora, se você verificar o status do seu nó mestre, deve ser 'Preparar'.
# kubectl Get nósVerifique o status dos nós mestre
Em seguida, adicionamos o nós do trabalhador para o cluster.
Adicionando nós do trabalhador ao cluster de Kubernetes
As seguintes instruções serão realizadas em cada Nó do trabalhador Ao ingressar no cluster Kubernetes.
Etapa 1: Prepare o nome do host, o firewall e o Selinux
Primeiro definiu o nome do host em seu Nó do trabalhador-1 e Nó do trabalhador-2, e então adicione as entradas do host ao /etc/hosts arquivo.
# hostnamectl set-hostname 'node-1' # cat <> etc /hosts 192.168.0.47 Nó mestre 192.168.0.48 Node-1 Nó do trabalhador-1 192.168.0.49 nó-2-nó-2 eof
Em seguida, ping no seu nó mestre de você nós do trabalhador Para confirmar que seu arquivo host atualizado está funcionando bem usando o comando ping.
# 192.168.0.47
Em seguida, desativar Selinux e atualize suas regras de firewall.
# setEnforce 0 # sed -i-siga-symlinks 's/selinux = aplicativo/selinux = desativado/g'/etc/sysconfig/Selinux # firewall-cmd --permanent --add-port = 6783/tcp # firewall- cmd --permanent --add-port = 10250/tcp # firewall-cmd --permanent --add-port = 10255/tcp # firewall-cmd --permanent --add-port = 30000-32767/tcp # firewall- cmd--reload # eco '1'>/proc/sys/net/ponte/ponte-nf-call-iptables
Etapa 2: Setup Docker-CE e Kubernetes Repo
Adicione o repositório do docker primeiro usando o DNF Config-manager.
# dnf config-manager --add-repo = https: // download.Docker.com/linux/CentOS/Docker-CE.repo
Em seguida, adicione o contêiner.io pacote.
# dnf install https: // download.Docker.com/linux/CentOS/7/x86_64/estábulo/pacotes/contêinerd.io-1.2.6-3.3.EL7.x86_64.RPM
Com esses dois pacotes instalados, instale a versão mais recente de Docker-CE.
# DNF Instale Docker-CE
Ativar e iniciar o serviço do Docker.
# SystemCtl Ativar Docker # SystemCtl Start Docker
Você precisará adicionar Kubernetes repositórios manualmente, pois não são pré-instalados CENTOS 8.
# gato < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF
Etapa 3: Instale o Kubeadm no CentOS 8
Com o pacote repo agora pronto, você pode seguir em frente e instalar KUBEADM.
# dnf install kubeadm -y
Inicie e habilite o serviço.
# SystemCtl Ativar Kubelet # SystemCtl Iniciar Kubelet
Etapa 4: junte -se ao nó do trabalhador ao cluster Kubernetes
Agora exigimos o token que KUBEADM INIT gerado, para se juntar ao cluster. Você pode copiar e colá -lo para o seu nó-1 e nó-2 Se você tivesse copiado em algum lugar.
# kubeadm Junte -se 192.168.0.47: 6443 -TOKEN NU06LU.XRSUX0SS0IXTNMS5-Discovery-Token-Cer-Cert-Hash SHA256: F996EA35R4353D342FDEA2997A1CF8CAEDDAFD6D4360D606DBC82314683478HJMF780
Conforme sugerido na última linha, volte para o seu Nó mestre e verifique se o trabalhador nó-1 e Nó do trabalhador-2 ingressou no cluster usando o seguinte comando.
# kubectl Get nósVerifique todos os nós Status no cluster de Kubernetes
Se todas as etapas funcionarem com sucesso, então você deve ver nó-1 e nó-2 em status pronto no Nó mestre. Neste ponto, agora você implantou com sucesso um cluster de Kubernetes em CENTOS 8.
Leitura recomendada: Como implantar o nginx em um cluster Kubernetes
Algumas limitações
O cluster que criamos aqui tem um único Nó mestre, e como tal, se o Nó mestre Falha, seu cluster pode perder dados e pode precisar ser recriado do zero.
Por esse motivo, recomendo uma configuração altamente disponível.
- « Como instalar e configurar o Hive com alta disponibilidade - Parte 7
- 8 servidores proxy reversos de código aberto de código aberto para Linux »