Em alguns ambientes de produção, precisamos apenas de um cluster K8s nativo e não há necessidade de implantar um console de gerenciamento gráfico como o KubeSphere . Em nossa pilha de tecnologia existente, estamos acostumados a usar KubeKey para implantar clusters KubeSphere e K8s. Hoje, vou demonstrar para você como implantar um cluster K8s puro usando KubeKey no openEuler 22.03 LTS SP3 .
Configuração real do servidor (réplica 1:1 da arquitetura de um ambiente de produção em pequena escala, a configuração é um pouco diferente)
Nome da CPU | PI | CPU | Memória | disco do sistema | disco de dados | usar |
---|---|---|---|---|---|---|
ksp-mestre-1 | 192.168.9.131 | 8 | 16 | 40 | 100 | k8s-mestre |
ksp-master-2 | 192.168.9.132 | 8 | 16 | 40 | 100 | k8s-mestre |
ksp-master-3 | 192.168.9.133 | 8 | 16 | 40 | 100 | k8s-mestre |
total | 3 | 24 | 48 | 120 | 300 |
O ambiente de combate real envolve informações sobre a versão do software
-
Sistema operacional: openEuler 22.03 LTS SP3 x64
-
K8s: v1.28.8
-
Contêiner: 1.7.13
-
KubeKey: v3.1.1
1. Configuração básica do sistema operacional
Observe que as operações a seguir precisam ser executadas em todos os servidores, a menos que especificado de outra forma. Este artigo seleciona apenas o nó Master-1 para demonstração e pressupõe que os outros servidores foram configurados e configurados da mesma maneira.
1.1 Configurar nome do host
hostnamectl hostname ksp-master-1
1.2 Configurar DNS
echo "nameserver 114.114.114.114" > /etc/resolv.conf
1.3 Configurar fuso horário do servidor
- Configure o fuso horário do servidor para Ásia/Xangai .
timedatectl set-timezone Asia/Shanghai
1.4 Configurar sincronização de horário
- Instale o chrony como software de sincronização de horário
yum install chrony
- Edite o arquivo de configuração
/etc/chrony.conf
e modifique a configuração do servidor NTP
vi /etc/chrony.conf
# 删除所有的 pool 配置
pool pool.ntp.org iburst
# 增加国内的 ntp 服务器,或是指定其他常用的时间服务器
pool cn.pool.ntp.org iburst
# 上面的手工操作,也可以使用 sed 自动替换
sed -i 's/^pool pool.*/pool cn.pool.ntp.org iburst/g' /etc/chrony.conf
- Reinicie e configure o serviço chrony para iniciar automaticamente na inicialização
systemctl enable chronyd --now
- Verifique o status de sincronização do Chrony
# 执行查看命令
chronyc sourcestats -v
# 正常的输出结果如下
[root@ksp-master-1 ~]# chronyc sourcestats -v
.- Number of sample points in measurement set.
/ .- Number of residual runs with same sign.
| / .- Length of measurement set (time).
| | / .- Est. clock freq error (ppm).
| | | / .- Est. error in freq.
| | | | / .- Est. offset.
| | | | | | On the -.
| | | | | | samples. \
| | | | | | |
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
111.230.189.174 18 11 977 -0.693 6.795 -1201us 2207us
electrode.felixc.at 18 10 917 +2.884 8.258 -31ms 2532us
tick.ntp.infomaniak.ch 14 7 720 +2.538 23.906 +6176us 4711us
time.cloudflare.com 18 7 913 +0.633 9.026 -2543us 3142us
1.5 Desligue o firewall do sistema
systemctl stop firewalld && systemctl disable firewalld
1.6 Desativar SELinux
O sistema minimamente instalado do openEuler 22.03 SP3 tem o SELinux habilitado por padrão. Para reduzir problemas, todos os nossos nós desabilitam o SELinux.
# 使用 sed 修改配置文件,实现彻底的禁用
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 使用命令,实现临时禁用,这一步其实不做也行,KubeKey 会自动配置
setenforce 0
1.7 Instalar dependências do sistema
Em todos os nós, execute o seguinte comando para instalar os pacotes básicos de dependência do sistema para Kubernetes.
# 安装 Kubernetes 系统依赖包
yum install curl socat conntrack ebtables ipset ipvsadm
# 安装 tar 包,不装的话后面会报错。openEuler 也是个奇葩,迭代这么多版本了,默认居然还不安装 tar
yum install tar
2. Configuração do disco do sistema operacional
O servidor adiciona um novo disco de dados /dev/sdb para armazenamento persistente de Containerd e K8s Pod .
Para satisfazer os desejos de alguns usuários, a expansão dinâmica pode ser alcançada quando a capacidade do disco é insuficiente após a produção ficar online. Este artigo usa LVM para configurar o disco ( na verdade, o ambiente de produção que mantenho raramente usa LVM ).
Observe que as operações a seguir devem ser executadas em todos os nós do cluster, a menos que especificado de outra forma. Este artigo seleciona apenas o nó Master-1 para demonstração e pressupõe que os outros servidores foram configurados e configurados da mesma maneira.
2.1 Use LVM para configurar discos
- Criar PV
pvcreate /dev/sdb
- CriarVG
vgcreate data /dev/sdb
- Criar LV
# 使用所有空间,VG 名字为 data,LV 名字为 lvdata
lvcreate -l 100%VG data -n lvdata
2.2 Formatar disco
mkfs.xfs /dev/mapper/data-lvdata
2.3 Montagem de disco
- Montagem manual
mkdir /data
mount /dev/mapper/data-lvdata /data/
- Montar automaticamente na inicialização
tail -1 /etc/mtab >> /etc/fstab
2.4 Criar diretório de dados
- Crie o diretório raiz de dados locais do OpenEBS
mkdir -p /data/openebs/local
- Criar diretório de dados Containerd
mkdir -p /data/containerd
- Crie uma conexão suave com o diretório de dados do Containerd
ln -s /data/containerd /var/lib/containerd
Nota: Até a versão v3.1.1, o KubeKey não suportava a alteração do diretório de dados do Containerd durante a implantação. Você só pode usar este link de diretório para uma solução alternativa para aumentar o espaço de armazenamento ( o Containerd também pode ser instalado manualmente com antecedência ).
3. Instale e implante K8s
3.1 Baixar KubeKey
Este artigo usa o nó master-1 como nó de implantação e baixa a versão mais recente do arquivo binário KubeKey ( v3.1.1 ) para o servidor. O número de versão específico do KubeKey pode ser visualizado na página de lançamento do KubeKey .
- Baixe a versão mais recente do KubeKey
mkdir ~/kubekey
cd ~/kubekey/
# 选择中文区下载(访问 GitHub 受限时使用)
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | sh -
- O resultado correto da execução é o seguinte
[root@ksp-master-1 ~]# mkdir ~/kubekey
[root@ksp-master-1 ~]# cd ~/kubekey/
[root@ksp-master-1 kubekey]# export KKZONE=cn
[root@ksp-master-1 kubekey]# curl -sfL https://get-kk.kubesphere.io | sh -
Downloading kubekey v3.1.1 from https://kubernetes.pek3b.qingstor.com/kubekey/releases/download/v3.1.1/kubekey-v3.1.1-linux-amd64.tar.gz ...
Kubekey v3.1.1 Download Complete!
[root@ksp-master-1 kubekey]# ll -h
total 114M
-rwxr-xr-x. 1 root root 79M Apr 16 12:30 kk
-rw-r--r--. 1 root root 36M Apr 25 09:37 kubekey-v3.1.1-linux-amd64.tar.gz
- Veja a lista de versões do Kubernetes suportadas pelo KubeKey
./kk version --show-supported-k8s
[root@ksp-master-1 kubekey]# ./kk version --show-supported-k8s
v1.19.0
......(受限于篇幅,中间的不展示,请读者根据需求查看)
v1.28.0
v1.28.1
v1.28.2
v1.28.3
v1.28.4
v1.28.5
v1.28.6
v1.28.7
v1.28.8
v1.29.0
v1.29.1
v1.29.2
v1.29.3
Nota: Os resultados de saída são aqueles suportados pelo KubeKey, mas isso não significa que o KubeSphere e outros K8s também possam suportá-los perfeitamente. Este artigo usa KubeKey apenas para implantar K8s, portanto, não há necessidade de considerar a compatibilidade de versão.
A versão K8s suportada pelo KubeKey ainda é relativamente nova. Este artigo escolhe v1.28.8 . Para o ambiente de produção, você pode escolher v1.26.15 ou outras versões com um número par de versões secundárias e mais de 5 versões de patch . Não é recomendado escolher uma versão muito antiga. Afinal, a v1.30 foi lançada.
3.2 Criar arquivo de configuração de implantação de cluster K8s
- Criar arquivo de configuração de cluster
Este artigo escolheu K8s v1.28.8 . Portanto, o nome do arquivo de configuração especificado é k8s-v1288.yaml . Se não for especificado, o nome do arquivo padrão será config-sample.yaml .
./kk create config -f k8s-v1288.yaml --with-kubernetes v1.28.8
Nota: O arquivo de configuração padrão gerado tem muito conteúdo, então não vou mostrá-lo em detalhes aqui. Para parâmetros de configuração mais detalhados, consulte o exemplo de configuração oficial .
- Modificar arquivo de configuração
O exemplo neste artigo usa três nós como plano de controle, etcd e nós de trabalho ao mesmo tempo.
Edite o arquivo de configuração k8s-v1288.yaml
, modifique principalmente a configuração relacionada do tipo: seção Cluster
Modifique as informações de hosts e roleGroups na seção kind: Cluster As instruções de modificação são as seguintes.
- hosts: Especifique o IP do nó, usuário ssh, senha ssh, porta ssh
- roleGroups: Especifique 3 nós etcd e de plano de controle e reutilize a mesma máquina como 3 nós de trabalho
- internalLoadbalancer: habilite o balanceador de carga HAProxy integrado
- Domínio: nome de domínio personalizado lb.opsxlab.cn . Se não houver requisitos especiais, você poderá usar o valor padrão lb.kubesphere.local.
- clusterName: Personalize opsxlab.cn . Se não houver requisitos especiais, você poderá usar o valor padrão cluster.local.
- autoRenewCerts: Este parâmetro pode realizar a renovação automática da expiração do certificado, o padrão é verdadeiro
- containerManager: usando containerd
O exemplo completo modificado é o seguinte:
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: ksp-master-1, address: 192.168.9.131, internalAddress: 192.168.9.131, user: root, password: "OpsXlab@2024"}
- {name: ksp-master-2, address: 192.168.9.132, internalAddress: 192.168.9.132, user: root, password: "OpsXlab@2024"}
- {name: ksp-master-3, address: 192.168.9.133, internalAddress: 192.168.9.133, user: root, password: "OpsXlab@2024"}
roleGroups:
etcd:
- ksp-master-1
- ksp-master-2
- ksp-master-3
control-plane:
- ksp-master-1
- ksp-master-2
- ksp-master-3
worker:
- ksp-master-1
- ksp-master-2
- ksp-master-3
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
internalLoadbalancer: haproxy
domain: lb.opsxlab.cn
address: ""
port: 6443
kubernetes:
version: v1.28.8
clusterName: opsxlab.cn
autoRenewCerts: true
containerManager: containerd
etcd:
type: kubekey
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
multusCNI:
enabled: false
registry:
privateRegistry: ""
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
addons: []
3.3 Implantar K8s
A seguir, executamos o seguinte comando para implantar K8s usando o arquivo de configuração gerado acima.
export KKZONE=cn
./kk create cluster -f k8s-v1288.yaml
Depois que o comando acima for executado, o KubeKey verificará primeiro as dependências e outros requisitos detalhados para implantar K8s. Depois de passar na verificação, você será solicitado a confirmar a instalação. Digite sim e pressione ENTER para continuar a implantação.
[root@ksp-master-1 kubekey]# ./kk create cluster -f k8s-v1288.yaml
_ __ _ _ __
| | / / | | | | / /
| |/ / _ _| |__ ___| |/ / ___ _ _
| \| | | | '_ \ / _ \ \ / _ \ | | |
| |\ \ |_| | |_) | __/ |\ \ __/ |_| |
\_| \_/\__,_|_.__/ \___\_| \_/\___|\__, |
__/ |
|___/
10:45:28 CST [GreetingsModule] Greetings
10:45:28 CST message: [ksp-master-3]
Greetings, KubeKey!
10:45:28 CST message: [ksp-master-1]
Greetings, KubeKey!
10:45:28 CST message: [ksp-master-2]
Greetings, KubeKey!
10:45:28 CST success: [ksp-master-3]
10:45:28 CST success: [ksp-master-1]
10:45:28 CST success: [ksp-master-2]
10:45:28 CST [NodePreCheckModule] A pre-check on nodes
10:45:31 CST success: [ksp-master-3]
10:45:31 CST success: [ksp-master-1]
10:45:31 CST success: [ksp-master-2]
10:45:31 CST [ConfirmModule] Display confirmation form
+--------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| name | sudo | curl | openssl | ebtables | socat | ipset | ipvsadm | conntrack | chrony | docker | containerd | nfs client | ceph client | glusterfs client | time |
+--------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
| ksp-master-1 | y | y | y | y | y | y | y | y | y | | | | | | CST 10:45:31 |
| ksp-master-2 | y | y | y | y | y | y | y | y | y | | | | | | CST 10:45:31 |
| ksp-master-3 | y | y | y | y | y | y | y | y | y | | | | | | CST 10:45:31 |
+--------------+------+------+---------+----------+-------+-------+---------+-----------+--------+--------+------------+------------+-------------+------------------+--------------+
This is a simple check of your environment.
Before installation, ensure that your machines meet all requirements specified at
https://github.com/kubesphere/kubekey#requirements-and-recommendations
Continue this installation? [yes/no]:
Perceber:
- Os três clientes relacionados ao armazenamento, cliente nfs, cliente ceph e cliente glusterfs, não serão instalados separadamente posteriormente na implementação real do armazenamento de encaixe.
- docker e containerd serão instalados automaticamente de acordo com o tipo containerManager selecionado no arquivo de configuração .
A implantação leva cerca de 10 a 20 minutos. Depende da velocidade da rede e da configuração da máquina. Essa implantação leva 20 minutos para ser concluída.
Assim que a implantação for concluída, você deverá ver uma saída semelhante à seguinte em seu terminal.
10:59:25 CST [ConfigureKubernetesModule] Configure kubernetes
10:59:25 CST success: [ksp-master-1]
10:59:25 CST skipped: [ksp-master-2]
10:59:25 CST skipped: [ksp-master-3]
10:59:25 CST [ChownModule] Chown user $HOME/.kube dir
10:59:26 CST success: [ksp-master-3]
10:59:26 CST success: [ksp-master-2]
10:59:26 CST success: [ksp-master-1]
10:59:26 CST [AutoRenewCertsModule] Generate k8s certs renew script
10:59:27 CST success: [ksp-master-2]
10:59:27 CST success: [ksp-master-3]
10:59:27 CST success: [ksp-master-1]
10:59:27 CST [AutoRenewCertsModule] Generate k8s certs renew service
10:59:28 CST success: [ksp-master-3]
10:59:28 CST success: [ksp-master-2]
10:59:28 CST success: [ksp-master-1]
10:59:28 CST [AutoRenewCertsModule] Generate k8s certs renew timer
10:59:29 CST success: [ksp-master-2]
10:59:29 CST success: [ksp-master-3]
10:59:29 CST success: [ksp-master-1]
10:59:29 CST [AutoRenewCertsModule] Enable k8s certs renew service
10:59:29 CST success: [ksp-master-3]
10:59:29 CST success: [ksp-master-2]
10:59:29 CST success: [ksp-master-1]
10:59:29 CST [SaveKubeConfigModule] Save kube config as a configmap
10:59:29 CST success: [LocalHost]
10:59:29 CST [AddonsModule] Install addons
10:59:29 CST success: [LocalHost]
10:59:29 CST Pipeline[CreateClusterPipeline] execute successfully
Installation is complete.
Please check the result using the command:
kubectl get pod -A
4. Verifique o cluster K8s
4.1 linha de comando kubectl para verificar o status do cluster
Esta seção analisa brevemente o status básico, que não é abrangente. Você pode experimentar e explorar mais detalhes por conta própria.
- Ver informações do nó do cluster
Execute o comando kubectl no nó master-1 para obter a lista de nós disponíveis no cluster K8s.
kubectl get nodes -o wide
Como você pode ver na saída, o cluster K8s atual tem três nós disponíveis, o IP interno do nó, a função do nó, o número da versão K8s do nó, o tempo de execução do contêiner e o número da versão, o tipo de sistema operacional, a versão do kernel e outras informações.
[root@ksp-master-1 kubekey]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ksp-master-1 Ready control-plane,worker 9m43s v1.28.8 192.168.9.131 <none> openEuler 22.03 (LTS-SP3) 5.10.0-182.0.0.95.oe2203sp3.x86_64 containerd://1.7.13
ksp-master-2 Ready control-plane,worker 8m8s v1.28.8 192.168.9.132 <none> openEuler 22.03 (LTS-SP3) 5.10.0-182.0.0.95.oe2203sp3.x86_64 containerd://1.7.13
ksp-master-3 Ready control-plane,worker 8m9s v1.28.8 192.168.9.133 <none> openEuler 22.03 (LTS-SP3) 5.10.0-182.0.0.95.oe2203sp3.x86_64 containerd://1.7.13
- Ver lista de pods
Insira o comando a seguir para obter a lista de pods em execução no cluster K8s.
kubectl get pods -o wide -A
Como você pode ver na saída, todos os pods estão em execução.
[root@ksp-master-1 kubekey]# kubectl get pod -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE
kube-system calico-kube-controllers-64f6cb8db5-fsgnq 1/1 Running 0 4m59s 10.233.84.2 ksp-master-1
kube-system calico-node-5hkm4 1/1 Running 0 4m59s 192.168.9.133 ksp-master-3
kube-system calico-node-wqz9s 1/1 Running 0 4m59s 192.168.9.132 ksp-master-2
kube-system calico-node-zzr5n 1/1 Running 0 4m59s 192.168.9.131 ksp-master-1
kube-system coredns-76dd97cd74-66k8z 1/1 Running 0 6m22s 10.233.84.1 ksp-master-1
kube-system coredns-76dd97cd74-94kvl 1/1 Running 0 6m22s 10.233.84.3 ksp-master-1
kube-system kube-apiserver-ksp-master-1 1/1 Running 0 6m39s 192.168.9.131 ksp-master-1
kube-system kube-apiserver-ksp-master-2 1/1 Running 0 4m52s 192.168.9.132 ksp-master-2
kube-system kube-apiserver-ksp-master-3 1/1 Running 0 5m9s 192.168.9.133 ksp-master-3
kube-system kube-controller-manager-ksp-master-1 1/1 Running 0 6m39s 192.168.9.131 ksp-master-1
kube-system kube-controller-manager-ksp-master-2 1/1 Running 0 4m58s 192.168.9.132 ksp-master-2
kube-system kube-controller-manager-ksp-master-3 1/1 Running 0 5m5s 192.168.9.133 ksp-master-3
kube-system kube-proxy-2xpq4 1/1 Running 0 5m3s 192.168.9.131 ksp-master-1
kube-system kube-proxy-9frmd 1/1 Running 0 5m3s 192.168.9.133 ksp-master-3
kube-system kube-proxy-bhg2k 1/1 Running 0 5m3s 192.168.9.132 ksp-master-2
kube-system kube-scheduler-ksp-master-1 1/1 Running 0 6m39s 192.168.9.131 ksp-master-1
kube-system kube-scheduler-ksp-master-2 1/1 Running 0 4m59s 192.168.9.132 ksp-master-2
kube-system kube-scheduler-ksp-master-3 1/1 Running 0 5m5s 192.168.9.133 ksp-master-3
kube-system nodelocaldns-gl6dc 1/1 Running 0 6m22s 192.168.9.131 ksp-master-1
kube-system nodelocaldns-q45jf 1/1 Running 0 5m9s 192.168.9.133 ksp-master-3
kube-system nodelocaldns-rskk5 1/1 Running 0 5m8s 192.168.9.132 ksp-master-2
- Ver lista de imagens
Insira o seguinte comando para obter a lista de imagens que foram baixadas no nó do cluster K8s.
[root@ksp-master-1 kubekey]# crictl images ls
IMAGE TAG IMAGE ID SIZE
registry.cn-beijing.aliyuncs.com/kubesphereio/cni v3.27.3 6527a35581401 88.4MB
registry.cn-beijing.aliyuncs.com/kubesphereio/coredns 1.9.3 5185b96f0becf 14.8MB
registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache 1.22.20 ff71cd4ea5ae5 30.5MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver v1.28.8 e70a71eaa5605 34.7MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager v1.28.8 e5ae3e4dc6566 33.5MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers v3.27.3 3e4fd05c0c1c0 33.4MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy v1.28.8 5ce97277076c6 28.1MB
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler v1.28.8 ad3260645145d 18.7MB
registry.cn-beijing.aliyuncs.com/kubesphereio/node v3.27.3 5c6ffd2b2a1d0 116MB
registry.cn-beijing.aliyuncs.com/kubesphereio/pause 3.9 e6f1816883972 321kB
Até agora, concluímos a implantação de um cluster K8s mínimo com três nós mestres e nós de trabalho reutilizados.
A seguir, implantaremos um servidor web Nginx simples no cluster K8s para testar e verificar se o cluster K8s está normal.
5. Implante recursos de teste
Este exemplo usa ferramentas de linha de comando para implantar um servidor web Nginx em um cluster K8s.
5.1 Criar implantação Nginx
Execute o comando a seguir para criar uma implantação que implante o servidor web Nginx. Neste exemplo, criaremos um pod com duas réplicas baseadas na imagem nginx:alpine.
kubectl create deployment nginx --image=nginx:alpine --replicas=2
5.2 Criar serviço Nginx
Crie um novo serviço K8s com nome de serviço nginx, tipo de serviço Nodeport e porta de serviço externo 80.
kubectl create service nodeport nginx --tcp=80:80
5.3 Verifique a implantação e o pod do Nginx
- Execute os comandos a seguir para visualizar os recursos de implantação e pod criados.
kubectl get deployment -o wide
kubectl get pods -o wide
- Veja os resultados da seguinte forma:
[root@ksp-master-1 kubekey]# kubectl get deployment -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx 2/2 2 2 20s nginx nginx:alpine app=nginx
[root@ksp-master-1 kubekey]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-6c557cc74d-tbw9c 1/1 Running 0 23s 10.233.102.187 ksp-master-2 <none> <none>
nginx-6c557cc74d-xzzss 1/1 Running 0 23s 10.233.103.148 ksp-master-1 <none> <none>
5.4 Verifique o serviço Nginx
Execute o seguinte comando para visualizar a lista de serviços disponíveis. Na lista, podemos ver que o tipo de serviço nginx é Nodeport e a porta 30619 está aberta no host Kubernetes.
kubectl get svc -o wide
Veja os resultados da seguinte forma:
[root@ksp-master-1 kubekey]# kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.233.0.1 <none> 443/TCP 4d22h <none>
nginx NodePort 10.233.14.48 <none> 80:30619/TCP 5s app=nginx
5.5 Serviço de verificação
Execute o comando a seguir para acessar o serviço Nginx implantado e verifique se o serviço foi implantado com sucesso.
- Verifique o acesso direto ao pod
curl 10.233.102.187
# 访问结果如下
[root@ks-master-1 ~]# curl 10.233.102.187
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
- Verifique o acesso ao serviço
curl 10.233.14.48
# 访问结果同上,略
- Verifique o acesso ao Nodeport
curl 192.168.9.131:30619
# 访问结果同上,略
6. Scripts de shell automatizados
Todas as etapas do artigo foram compiladas em scripts automatizados e não são mostradas neste documento devido a limitações de espaço.
7. Resumo
Este artigo compartilha o processo detalhado e as precauções para implantar um cluster K8s v1.28.8 usando KubeKey , uma ferramenta desenvolvida pela KubeSphere, no sistema operacional openEuler 22.03 LTS SP3.
O conteúdo principal é resumido da seguinte forma:
- Configuração básica do sistema operacional openEuler 22.03 LTS SP3
- Configuração de criação de disco LVM no sistema operacional openEuler 22.03 LTS SP3
- Use KubeKey para implantar cluster de alta disponibilidade K8s
- Teste de verificação após a conclusão da implantação do cluster K8s
Isenção de responsabilidade:
- O nível do autor é limitado. Embora ele tenha passado por muitas verificações e verificações e tenha feito o possível para garantir a precisão do conteúdo, ainda pode haver omissões . Sinta-se à vontade para nos dar conselhos de especialistas do setor.
- O conteúdo descrito neste artigo foi verificado e testado apenas em ambientes de combate reais. Os leitores podem aprender e aprender com ele, mas é estritamente proibido usá-lo diretamente em ambientes de produção . O autor não é responsável por quaisquer problemas causados por isso !
RustDesk suspende serviços domésticos devido a fraude desenfreada Apple lança chip M4 Taobao (taobao.com) reinicia trabalho de otimização de versão web Alunos do ensino médio criam sua própria linguagem de programação de código aberto como um presente de maioridade - Comentários críticos dos internautas: Confiando no defesa Yunfeng renunciou ao Alibaba e planeja produzir no futuro O destino para programadores de jogos independentes Visual Studio Code 1.89 lança Java 17. É a versão Java LTS mais comumente usada, com uma participação de mercado de 70. %, e o Windows 11 continua a diminuir. Open Source Daily | Google apoia Hongmeng para assumir o controle do Rabbit R1;Este artigo foi publicado pelo OpenWrite , um blog que publica vários artigos !