Como instalar um cluster Kubernetes no CentOS 7
- 1813
- 115
- Howard Fritsch
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
- 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.
- 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.
- 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 KubernetesInstalaçã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 initInicialize 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ósVerifique 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ósVerifique 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: F996EA3564E6A07FDEA2997A1CF8CAEDDAFD6D4360D606DBC8314688425CD41Junte -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ó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.
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.
- « Como instalar a ferramenta de monitoramento Pandora FMS no Ubuntu 18.04
- Como instalar o SeaFile para sincronizar e compartilhar arquivos no Ubuntu »