Análise aprofundada da nuvem nativa como usar o Vagrant Kubespray para inicializar rapidamente o cluster K8S

I. Introdução

  • Vagrant é um software para construção e configuração de um ambiente de desenvolvimento virtual, escrito em Ruby e executado principalmente na linha de comando. Ele usa principalmente o Oracle VirtualBox para fornecer um sistema de virtualização, que pode ser usado em conjunto com Chef, Salt, Puppet e outros softwares de gerenciamento de configuração de ambiente para criar rapidamente um ambiente de desenvolvimento virtual.
  • O Kubespray usa a ferramenta Ansible para permitir que máquinas remotas especificadas executem uma série de scripts em lotes por meio do protocolo SSH, instalem vários componentes e concluam a construção do cluster K8S.

2. Instale o Vagrant

  • A máquina host é o Ubuntu 20.04. Para instalação, consulte Instalar o Vagrant:
wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant
  • O provedor usado pelo Vagrant aqui é o virtualbox.

3. Prepare a Vagrant Box

  • No início, o centos7 foi usado, mas algumas configurações padrão deste Box não são flexíveis o suficiente:
    • O SSH Server está configurado para não usar senhas para se conectar, apenas para usar chaves privadas;
    • O tamanho máximo do disco é de apenas dezenas de G, o que será um gargalo no estágio posterior;
    • O usuário root não pode usá-lo diretamente.
  • Devido aos motivos acima, decidi fazer um CentOS Box sozinho.

4. Caixa caseira do CentOS

  • Primeiro prepare uma imagem de máquina virtual CentOS 7.8, com base nisso inicie uma máquina virtual (chamada centos7.8-template), esta máquina virtual possui vários requisitos:
    • O tamanho do disco é 2T (pré-alocado, o espaço ocupado real depende do uso real);
    • A memória e a CPU são definidas no Vagrantfile no momento da criação;
    • usuário vagabundo, sudoer precisa definir NOPASSWD;
    • adicionar chave pública;
    • definir ssh-server,useDNS=no;
    • Instale as adições de convidados do VirtualBox.
# 宿主机上生成 box
vagrant package --base centos7.8-template

# 添加 box
vagrant box add package.box --name centos7.8
  • Esta caixa foi carregada no Vagrant Cloud: centos7.8.

5. Inicialize a máquina virtual

  • Estrutura de diretórios:
.
├── master01
│   └── Vagrantfile
├── node01
│   └── Vagrantfile
├── node02
│   └── Vagrantfile
├── operator
│   └── Vagrantfile
└── scripts
    ├── init_node.sh
    └── init_operator.sh
  • Use init_operator.sh e init_node.sh para inicializar a máquina do operador e a máquina do nó (incluindo mestre), endereço do GitHub: k8s-cluster-vagrant .

6. Defina o login sem senha

ssh-keygen
ssh-copy-id root@ip

7. Inicialize o cluster K8S

cp -rfp inventory/sample inventory/mycluster

# 生成 hosts.yaml
declare -a IPS=(192.168.3.63 192.168.3.64 192.168.3.65)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${
    
    IPS[@]}

# 编辑 inventory/mycluster/hosts.yaml
# 修改 master 和 node 的分配

# 编辑 inventory/mycluster/group_vars/all/all.yml
# 设置 http_proxy 和 https_proxy 代理,代理需要是 http 开头的

# 编辑 inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
# 设置 container_manager 为 docker

# 编辑 inventory/mycluster/group_vars/all/docker.yml
# 设置 docker_registry_mirrors,添加阿里云镜像加速地址

# 开始创建集群
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml

# 删除集群
# 会卸载 docker
#ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root reset.yml

おすすめ

転載: blog.csdn.net/Forever_wj/article/details/131684937