Como instalar um cluster Kubernetes no CentOS 7

Como instalar um cluster Kubernetes no CentOS 7

Doado por Google para a comunidade OpenSource, Kubernetes tornou -se agora a ferramenta de gerenciamento de contêineres preferida. Ele pode gerenciar e orquestrar não apenas o Docker Run Times, mas também os contêineres e Rkt Runtimes.

Um típico Kubernetes Cluster geralmente teria um nó mestre e vários nodos de trabalhador ou lacaios. Os Nodos do Trabalhador são então gerenciados a partir do nó principal, garantindo assim que o cluster seja gerenciado a partir de um ponto central.

Também é importante mencionar que você também pode implantar um cluster Kubernetes de um único nó, que geralmente é recomendado para cargas de trabalho muito leves e não produtivas. Para isso, você pode usar Minikube, que é uma ferramenta que executa um cluster Kubernetes de um único nó em uma máquina virtual em seu nó.

Leitura recomendada: Como instalar um cluster Kubernetes no CentOS 8

Para este tutorial, seguiremos um multi-nó Kubernetes instalação de cluster em CENTOS 7 Linux. Este tutorial é baseado na linha de comando, então você precisará de acesso à janela do seu terminal.

Pré -requisitos

  1. Vários servidores em execução CENTOS 7 (1 nó mestre, 2 nós do trabalhador). É recomendado que o seu Nó mestre Tenha pelo menos 2 CPUs, embora este não seja um requisito rigoroso.
  2. 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 YUM esteja instalado por padrão e possa buscar pacotes remotamente.
  3. Você também precisará de acesso a uma conta com sudo ou privilégios de raiz. Neste tutorial, estarei usando minha conta raiz.

Nosso cluster de 3 nós será algo assim:

Diagrama de cluster de Kubernetes

Instalação do cluster de Kubernetes no nó mestre

Para Kubernetes Para trabalhar, você precisará de um mecanismo de contêinerização. Para esta instalação, usaremos Docker como é o mais popular.

As etapas a seguir serão executadas no Nó mestre.

Etapa 1: Prepare o nome do host, o firewall e o Selinux

No seu nó mestre, defina o nome do host e se você não tiver um servidor DNS, também atualize seu /etc/hosts arquivo.

# hostnamectl set-hostname mestre nó # cat <> etc /hosts 10.128.0.27 Nó mestre 10.128.0.29 Node-1 Nó do trabalhador-1 10.128.0.30 nó-2-nó-2 eof 

Você pode ping Nó do trabalhador-1 e Nó do trabalhador-2 Para testar se o seu arquivo host atualizado está bem usando o comando ping.

# ping 10.128.0.29 # ping 10.128.0.30 

Em seguida, desativar Selinux e atualize suas regras de firewall.

# setEnforce 0 # sed -i - -sollow -symlinks 's/selinux = aplicativo/selinux = desativado/g'/etc/sysconfig/selinux # reinicialização 

Defina as seguintes regras do firewall nas portas. Certifique-se de que cada comando firewall-cmd retorne um sucesso.

# 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: Configure o repo Kubernetes

Você precisará adicionar Kubernetes repositórios manualmente, pois não são instalados por padrão em CENTOS 7.

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 Kubeadm e Docker

Com o pacote repo agora pronto, você pode seguir em frente e instalar KUBEADM e Docker pacotes.

# yum install kubeadm docker -y 

Quando a instalação é concluída com êxito, ative e inicie os dois serviços.

# SystemCtl Ativar Kubelet # SystemCtl Iniciar Kubelet # SystemCtl Ativar Docker # SystemCtl START Docker 

Etapa 4: Inicialize Kubernetes Master e Setup Padrão Usuário

Agora estamos prontos para inicializar o mestre de Kubernetes, mas antes disso você precisa desativar a troca para executar “KUBEADM INIT“Command.

# swapoff -a 

Inicializar o Kubernetes Master é um processo totalmente automatizado que é gerenciado pelo “KUBEADM INIT“Comando que você vai executar.

# kubeadm init 
Inicialize o mestre de Kubernetes

Você pode copiar a última linha e salvá -la em algum lugar, porque você precisará executá -la no nós do trabalhador.

KUBEADM Junto 10.128.0.27: 6443 -TOKEN NU06LU.XRSUX0SS0IXTNMS5 \-Discovery-Token-Cer-Cert-Hash SHA256: F996EA3564E6A07FDEA2997A1CF8CAEDDAFD6D4360D606DBC8314688425CD41 

Dica: Às vezes esse comando pode reclamar do argumentos (args) aprovado, então edite -o para evitar erros. Então, você excluirá o '\' personagem que acompanha o --símbolo e seu comando final ficará assim.

KUBEADM Junto 10.128.0.27: 6443 -TOKEN NU06LU.XRSUX0SS0IXTNMS5-Discovery-Token-Cer-Cert-Hash SHA256: F996EA3564E6A07FDEA2997A1CF8CAEDDAFD6D4360D606DBC8314688425CD41 

Tendo inicializado Kubernetes Com sucesso, você precisará permitir que seu usuário comece a usar o cluster. No nosso caso, queremos executar esta instalação como raiz Usuário, portanto, seguiremos em frente e executaremos esses comandos como root. Você pode mudar para um usuário habilitado para sudo que você prefere e executar o abaixo usando sudo.

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 verifique se o Kubectl O comando está ativado.

# kubectl Get nós 
Verifique o status dos nós

Neste ponto, você também notará que o status do Nó mestre é 'Não está pronto'. Isso ocorre porque ainda estamos para implantar o Rede de pod para o cluster.

O Rede de pod é a rede de sobreposição para o cluster, que é implantado no topo da atual rede de nós. 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, deveria ser 'Preparar'.

# kubectl Get nós 
Verifique o status dos nós mestre

Em seguida, adicionamos o nós do trabalhador para o cluster.

Configurando nós do trabalhador para se juntar ao cluster Kubernetes

As etapas a seguir serão executadas no nós do trabalhador. Essas etapas devem ser executadas em cada Nó do trabalhador Ao ingressar no Kubernetes conjunto.

Etapa 1: Prepare o nome do host, o firewall e o Selinux

Nas suas Nó do trabalhador-1 e Nó do trabalhador-2, Defina o nome do host e, caso você não tenha um servidor DNS, também atualize seus nós mestre e trabalhador em /etc/hosts arquivo.

# hostnamectl set-hostname 'node-1' # cat <> etc /hosts 10.128.0.27 Nó mestre 10.128.0.29 Node-1 Nó do trabalhador-1 10.128.0.30 nó-2-nó-2 eof 

Você pode ping Nó mestre Para testar se o seu arquivo host atualizado está bem.

Em seguida, desativar Selinux e atualize suas regras de firewall.

# setEnforce 0 # sed -i - -sollow -symlinks 's/selinux = aplicativo/selinux = desabilitado/g'/etc/sysconfig/selinux 

Defina as seguintes regras do firewall nas portas. Certifique-se de que todos os comandos do Firewall-CMD, retornem sucesso.

# 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 # echo '1'>/proc/sys/net/bridge/nf-call-iptables 

Etapa 2: Configure o repo Kubernetes

Você precisará adicionar Kubernetes repositórios manualmente, pois não são pré-instalados CENTOS 7.

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 Kubeadm e Docker

Com o pacote repo agora pronto, você pode seguir em frente e instalar KUBEADM e Docker pacotes.

# yum install kubeadm docker -y 

Inicie e habilite os dois serviços.

# SystemCtl Ativar Docker # SystemCtl Iniciar Docker # SystemCtl Ativar Kubelet # SystemCtl Iniciar Kubelet 

Etapa 4: junte -se ao nó do trabalhador ao cluster Kubernetes

Agora exigimos o token que KUBEADM iniciado 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 10.128.0.27: 6443 -TOKEN NU06LU.XRSUX0SS0IXTNMS5-Discovery-Token-Cer-Cert-Hash SHA256: F996EA3564E6A07FDEA2997A1CF8CAEDDAFD6D4360D606DBC8314688425CD41 
Junte -se aos nós ao cluster KuberNets

Conforme sugerido na última linha, volte para o seu Nó mestre e verifique se Nó do trabalhador-1 e Nó do trabalhador-2 ingressou no cluster usando o seguinte comando.

# kubectl Get nós 
Verifique 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.

Leitura recomendada: Como implantar o nginx em um cluster Kubernetes

Neste ponto, concluímos com sucesso uma instalação de um Kubernetes cluster ligado CENTOS 7 E nós temos dois bordo com sucesso Nodos de trabalhadores. Agora você pode começar a criar seus pods e implantar seus serviços.