跳转到内容
Alibaba Cloud AI Agent Handbook 已开源,汇集50+工程师的一手实践经验点此了解

Nacos Kubernetes 快速开始

这个快速开始手册是帮忙您快速在通过Nacos的Docker镜像,在Kubernetes中部署并使用 Nacos。

1. 环境准备

使用此快速开始方法进行Nacos安装及部署,需要安装Kubernetes。

2. 下载 nacos-k8s 项目

Terminal window
git clone https://github.com/nacos-group/nacos-k8s.git
cd nacos-k8s

3. 快速启动

使用此方式快速启动,请注意这是没有使用持久化卷的,可能存在数据丢失风险:

3.1. 编辑部署配置文件, 添加鉴权相关配置

在 deploy/nacos/nacos-quick-start.yaml 中找到 nacos StatefulSet 的 nacos 容器:

  1. 将 image 改为正式镜像 nacos/nacos-server:v3.3.0。仓库中的默认镜像可能仍是旧版本。
  2. 保留已有的数据库、NACOS_SERVERS 等配置,用自己的值替换下列鉴权环境变量。已有同名项时直接修改,不要重复添加。

NACOS_AUTH_TOKEN 是签发 token 的服务端密钥,须为合法 Base64,解码后至少 32 字节;它不是登录得到的 accessToken。身份标识 key/value 必须非空。所有副本使用相同的密钥及身份标识,不要沿用仓库中的演示值。

以下是容器 env 的鉴权部分,将占位符替换为实际值:

env:
- name: NACOS_AUTH_ENABLE
value: "true"
- name: NACOS_AUTH_TOKEN
value: "<your-base64-token-signing-secret>"
- name: NACOS_AUTH_IDENTITY_KEY
value: "<your-server-identity-key>"
- name: NACOS_AUTH_IDENTITY_VALUE
value: "<your-server-identity-value>"

3.2. 执行快速开始脚本,启动Nacos

Terminal window
chmod +x quick-startup.sh
./quick-startup.sh

4. 验证Nacos服务是否启动成功

通过kubectl logs -f $pod_name命令,查看Nacos服务启动日志,如果看到如下日志,说明服务启动成功。

Nacos started successfully in xxxx mode. use xxxx storage

待 Pod 就绪后,在当前命名空间执行端口转发,并保持该终端运行。然后在另一个终端执行后续验证命令;控制台和接口示例均使用本地转发地址。

Terminal window
kubectl port-forward pod/nacos-0 8080:8080 8848:8848

4.1. Nacos控制台页面

打开任意浏览器,输入地址:http://127.0.0.1:8080, 即可进入Nacos控制台页面。

注意:首次打开会要求初始化管理员用户nacos的密码。

4.1.1. 获取访问 token

以下命令使用 Bash(Windows 可使用 Git Bash 或 WSL)。将密码替换为刚初始化的管理员密码,登录后将响应中的 accessToken 复制到 NACOS_ACCESS_TOKEN:

Terminal window
export NACOS_USERNAME='nacos'
export NACOS_PASSWORD='<your-initialized-password>'
curl -sS -X POST 'http://127.0.0.1:8848/nacos/v3/auth/user/login' \
--data-urlencode "username=${NACOS_USERNAME}" \
--data-urlencode "password=${NACOS_PASSWORD}"
export NACOS_ACCESS_TOKEN='<accessToken-from-login-response>'

下面的 Client API 和 Admin API 都需要该 token。token 过期后重新登录获取;应用接入时请使用具有所需权限的业务账号,参见配置访问凭据。

4.2. 服务注册

Terminal window
curl -X POST 'http://127.0.0.1:8848/nacos/v3/client/ns/instance?serviceName=quickstart.test.service&ip=127.0.0.1&port=8080' \
-H "accessToken: ${NACOS_ACCESS_TOKEN}"

4.3. 服务发现

Terminal window
curl -X GET 'http://127.0.0.1:8848/nacos/v3/client/ns/instance/list?serviceName=quickstart.test.service' \
-H "accessToken: ${NACOS_ACCESS_TOKEN}"

4.4. 发布配置

Terminal window
curl -X POST 'http://127.0.0.1:8848/nacos/v3/admin/cs/config?dataId=quickstart.test.config&groupName=test&content=HelloWorld' \
-H "accessToken: ${NACOS_ACCESS_TOKEN}"

4.5. 获取配置

Terminal window
curl -X GET 'http://127.0.0.1:8848/nacos/v3/client/cs/config?dataId=quickstart.test.config&groupName=test' \
-H "accessToken: ${NACOS_ACCESS_TOKEN}"

若返回鉴权失败,先检查用户名、密码、token 有效期及账号权限。仅在已有无凭据客户端的临时迁移场景中考虑显式关闭 Client 鉴权,处理方式见升级手册。

相关项目