k8s:利用helm离线部署consul v1.21.2

本文介绍了在离线环境下部署Consul服务网格的完整流程。环境采用国产化硬件(Hygon CPU+麒麟OS)和Kubernetes生态(KubeSphere 4.1.2),详细说明了Consul各端口功能(8500/HTTP API、8600/DNS等)。通过互联网机器使用Helm下载Bitnami仓库的Consul Chart和镜像,经Docker保存为离线包后,在离线服务器完成镜像加载、标签修改及推送到私有仓库(Harbor)的全过程。最后使用Helm安装配置Consul,包含镜像仓库地址、拉取策略等关

一、离线环境

CPU:Hygon C86 7285 32-core Processor

操作系统:麒麟操作系统

containerd:1.7.27

Kubernetes:1.26.12

KubeSphere:4.1.2

kubekey:3.1.10

Harbor:2.13.1

Consul 是一个服务网格解决方案,提供了服务发现、配置和分段等功能。它使用多个端口来处理不同的通信需求和服务功能。以下是 Consul 使用的各个端口及其用途:

8500/TCP:

用途:HTTP API 和 Web UI。

描述:这是你与 Consul 交互的主要方式之一,通过 HTTP 请求可以查询状态、注册服务等。同时,这也是访问 Consul 内置 Web UI 的端口。

8400/TCP:

用途:RPC 端口(旧版本)。

描述:在较早版本中用于执行远程过程调用(RPC),但自 Consul 0.7 版本后已不再推荐使用,并且在后续版本中可能已被弃用或移除。

8300/TCP:

用途:服务器 RPC。

描述:用于集群中的服务器节点之间的通信,比如数据同步和协调。

8301/TCP 和 8301/UDP:

用途:Serf LAN。

描述:这些端口用于局域网内(LAN)的服务成员之间的通信,包括健康检查信息的交换以及成员资格变动的通知。TCP 用于可靠的消息传递,而 UDP 则用于更高效的广播消息。

8302/TCP 和 8302/UDP:

用途:Serf WAN。

描述:用于广域网(WAN)上的数据中心间的通信。这允许不同数据中心的 Consul 服务器能够相互发现并交换信息。同样地,TCP 提供了可靠连接,而 UDP 支持更快的广播。

8600/TCP 和 8600/UDP:

用途:DNS 接口。

描述:允许客户端通过 DNS 查询的方式查找服务。这对于希望以传统方式集成服务发现的应用程序特别有用。TCP 通常用于长查询或大响应,而 UDP 更适合简短的请求和响应。

二、一台能连互联网的机器

Helm:是 Kubernetes 的包管理工具,允许开发者和管理员轻松地打包、部署、升级及管理 Kubernetes 应用程序。

Chart:在 Helm 中,chart 是定义、安装和配置 Kubernetes 应用的一系列文件集合。

2.1添加仓库

如果你还没有添加 Bitnami 仓库到 Helm,可以通过下面的命令添加:

helm repo add bitnami https://charts.bitnami.com/bitnami

2.2更新本地仓库缓存

在下载任何 chart 之前,最好先更新本地的 Helm 仓库缓存。

helm repo update

3.3查看本地仓库

helm repo list

3.4下载consul的Chart

使用 helm pull 命令来下载指定的 chart 的 .tgz 文件。

helm pull bitnami/consul --untar=false

这将下载最新版本的 consul chart 的 .tgz 文件到你的当前目录。

注:

如果你想下载特定版本的 chart,可以使用 --version 参数指定版本号,例如:

helm pull bitnami/consul --version X.Y.Z --untar=false

3.5拉取consul

#docker pull bitnami/consul

3.6另存consul

docker save -o d:\consul.tar bitnami/consul:latest

三、离线服务器

3.1.加载consul

#docker load -i consul.tar

3.2.打标签

docker tag bitnami/consul:latest 172.23.123.117:8443/library/bitnami/consul:latest

3.3.推送

注:先登录再推送

docker login 172.23.123.117:8443

docker push 172.23.123.117:8443/library/bitnami/consul:latest

3.4.安装consul

helm install consul ./consul-11.4.24.tgz \

--namespace default \

--set image.registry=172.23.123.117:8443 \

--set image.repository=library/bitnami/consul \

--set image.tag=latest \

--set image.pullPolicy=IfNotPresent \

--set global.security.allowInsecureImages=true

3.5卸载consul

helm uninstall consul -n default

3.6.查看consul服务

kubectl get sts