> 技术文档 > k8s:利用helm离线部署consul v1.21.2

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