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