[Implantação do Kubernetes] Criar cluster da versão K8S1.23 com base no sistema operacional Ubuntu20.04

1. Informações de planejamento de arquitetura de cluster

  • Segmento de rede do pod: 10.244.0.0/16
  • segmento de rede de serviço: 10.10.0.0/16
  • Nota: Os segmentos de pod e rede de serviço não podem entrar em conflito. Se houver um conflito, a instalação do cluster K8S falhará.

informação do servidor:

nome da CPU endereço de IP sistema operacional
k8s-master-1 16.32.15.123 20.04.1-Ubuntu
k8s-node-1 16.32.15.124 20.04.1-Ubuntu

2. Preparação da inicialização do sistema (operação síncrona de todos os nós)

1. Para trocar rootde usuário, as seguintes operações rootsão executadas pelos usuários

sudo -i

2. Configure a origem do armazém doméstico e instale as dependências necessárias
. Nota: O seguinte é Ubuntu20.04um exemplo da origem do armazém do sistema. Se a versão do sistema for diferente, você pode encontrar a versão correspondente no armazém espelho Ali! !

cd /etc/apt
cp sources.list sources.list_default
> sources.list

cat >> sources.list << EOF
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF
apt-get update
apt-get upgrade

Instale as dependências necessárias

apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg2

3. Adicionar resolução de nome de domínio local

cat  >> /etc/hosts << EOF
16.32.15.123 k8s-master-1
16.32.15.124 k8s-node-1
EOF

Modifique o nome do host, copie para o servidor correspondente para executar

hostnamectl set-hostname k8s-master-1 && bash
hostnamectl set-hostname k8s-node-1 && bash

4. Instale ntpdatepara manter o horário do servidor consistente

apt install ntpdate
ntpdate ntp1.aliyun.com

Configure tarefas cronometradas para sincronizar automaticamente o horário à 1h todos os dias

crontab -e
0 1 * * * ntpdate ntp1.aliyun.com

Ctrl+c Ctrl+x Y EnterSalvar e sair

Verifique se a tarefa agendada foi configurada com sucesso

crontab -l

5. Feche a partição swap

swapoff --all

Proibir a inicialização a partir da partição de troca de troca de inicialização

sed -i -r '/swap/ s/^/#/' /etc/fstab

6. Instale o Docker
para adicionar a chave ao banco de dados confiável local

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

Adicionar repositório do Docker

 sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
  $(lsb_release -cs) \
  stable"

Instalar Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Configurar o driver do Docker

cat <<EOF | tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": ["https://aoewjvel.mirror.aliyuncs.com"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

Inicie o Docker && junte-se ao início automático da inicialização

mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl restart docker
systemctl enable --now docker
systemctl status docker

3. Instale kubeadm (operação síncrona de todos os nós)

1. Configure a fonte doméstica yum, e o pré-requisito de instalação depende

apt-get update && apt-get install -y apt-transport-https curl
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main
EOF

Instalar dependências

apt-get update && apt-get install -y apt-transport-https curl

Erro relatado durante a execução:

Solução:
Obs: A KEY aqui não é única, circulei em vermelho na imagem acima, copie sua KEY e execute novamente

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B53DC80D13EDEF05
apt-get update && apt-get install -y apt-transport-https curl

2. Instale kubeadm, kubelet, kubectl

apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00

Adicionar início automático

systemctl enable kubelet

Marcar o pacote especificado como retido, impedindo atualizações automáticas de software

apt-mark hold kubelet kubeadm kubectl 

4. Inicialize o cluster K8S (operação do nó mestre)

kubeadm init \
--apiserver-advertise-address 16.32.15.123 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--ignore-preflight-errors=SystemVerification

Explicação das informações do parâmetro de inicialização:

  • image-repository: Especifique a fonte de imagem do Alibaba Cloud na China

  • pod-network-cidr: segmento de rede pod

  • service-cidr: segmento da rede de serviços

  • apiserver-advertise-address: apiserver地址

  • ignore-preflight-errors: ignore alguns erros verificados

Como o kubernetes usa o certificado CA por padrão, é necessário configurar o certificado para o kubectl acessar o Master

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Teste kubectlse o comando pode ser usado

kubectl get node

5. Adicione nós de nó ao cluster K8S

1. O comando kubeadm obtém aqueles que se juntam ao cluster token(executado pelo nó mestre)

kubeadm token create --print-join-command
kubeadm join 16.32.15.123:6443 --token kczwmr.x2ekr2pjq5iuhquh --discovery-token-ca-cert-hash sha256:2c8b60dfb13094634cd1476c902dd08e23042a1fb0d23f998c361d30655071f1

2. Copie o adquirido para ingressar no cluster token para o nó Node! (execução do nó do nó)

kubeadm join 16.32.15.123:6443 --token kczwmr.x2ekr2pjq5iuhquh --discovery-token-ca-cert-hash sha256:2c8b60dfb13094634cd1476c902dd08e23042a1fb0d23f998c361d30655071f1

3. Exibir informações do nó do cluster (executado pelo nó principal)

kubectl get node

insira a descrição da imagem aqui
OK, como você pode ver na figura acima, o nó ingressou com sucesso no cluster K8S.

6. Instale o plug-in de rede Calico

Como o calico oficial está no exterior, o download é relativamente lento, afinal tem uma parede. Baixei calico.yamlo arquivo e coloquei giteeno nacional. Em seguida, usarei o endereço doméstico para baixar calico.yamlo arquivo, por favor, saiba!

O nó mestre executa:

wget -O /root/calico.yaml https://gitee.com/qinziteng/K8S/raw/master/YMAL/calico.yaml
kubectl apply -f calico.yaml

Veja o status do pod do cluster:

kubectl get pods -n kube-system


Verifique o status do nó do nó do cluster:

 kubectl get node

insira a descrição da imagem aqui
Como acima, está correto, se ainda não estiver pronto, você precisa esperar um pouco ~

7. Teste a disponibilidade do CoreDNS

1. Crie um contêiner de teste

kubectl run busybox --image busybox:1.28 --restart=Never --rm -it busybox -- sh

2. Teste se pode ser analisado normalmente

nslookup kubernetes.default.svc.cluster.local

insira a descrição da imagem aqui

Como mostrado na figura acima, ele pode ser analisado normalmente. Até agora, o cluster da versão K8S1.23 baseado no sistema operacional Ubuntu20.04 foi implantado com sucesso e está correto!

Acho que você gosta

Origin blog.csdn.net/weixin_45310323/article/details/132119447
Recomendado
Clasificación