发布时间: 2024-8-9 文章作者: myluzh 分类名称: Kubernetes 朗读文章
curl -X PUT "http://172.30.233.87:8848/nacos/v1/ns/instance?serviceName=xfshcloud-dxp&clusterName=DEFAULT&groupName=DEFAULT_GROUP&ip=10.42.1.89&port=9208&ephemeral=true&weight=1&enabled=false&namespaceId=a9076f8c-a1c7-474c-9ea4-1112677d9af7" ok # 说明: # 172.30.233.87:8848 nacos注册地址 # serviceName=xfshcloud-dxp nacos中注册的应用名称 # ip=10.42.1.89 应用所在主机地址(也就是K8S中的PODIP) # port=9208 注册的应用名称使用的端口号 # enabled=false 下线,enabled=true 上线 # namespaceId=xxx 命令空间(如果使用public命名空间则不需要这个)0x03 在K8S中的优雅下线
#!/bin/sh echo "######## NACOS取消注册 ########" # 获取POD的IP地址,定义NACOS服务器地址、服务名和端口 POD_IP=$(hostname -i) # 使用 hostname -i 来获取 POD IP 可能不适用所有环境,建议使用 hostname -f 或通过环境变量来获取 POD IP 地址。 if [ -z "$POD_IP" ]; then echo "无法获取POD IP地址" exit 1 fi NACOS_SERVER_ADDR=$1 # '172.30.233.87:8848' SERVICE_NAME=$2 # "xfshcloud-dxp" SERVICE_PORT=$3 #"9208" [ -z "$NACOS_SERVER_ADDR" ] && { echo "错误: 未传入参数 NACOS_SERVER_ADDR 为空"; exit 1; } [ -z "$SERVICE_NAME" ] && { echo "错误: 未传入参数 SERVICE_NAME 为空"; exit 1; } [ -z "$SERVICE_PORT" ] && { echo "错误: 未传入参数 SERVICE_PORT 为空"; exit 1; } # 构建取消注册的URL UNREGISTER_URL="http://${NACOS_SERVER_ADDR}/nacos/v1/ns/instance?serviceName=${SERVICE_NAME}&clusterName=DEFAULT&groupName=DEFAULT_GROUP&ip=${POD_IP}&port=${SERVICE_PORT}&ephemeral=true&weight=1&enabled=false" # 打印URL echo "NACOS_取消注册URL: ${UNREGISTER_URL}" # 执行取消注册请求并获取结果 result=$(curl -s -X PUT ${UNREGISTER_URL}) # 打印结果 echo "NACOS_取消注册结果: ${result}" # 检查结果并处理 if [ "${result}" = "ok" ]; then echo "NACOS_执行成功" sleep 45 exit 0 else echo "NACOS_执行失败" sleep 45 exit 1 fi2、在应用Dockerfile中把脚本放进去
# Dockerfile文件,增加这个nacos_unreg.sh脚本,设置可执行权限 ADD nacos_unreg.sh /usr/local/bin/nacos_unreg.sh RUN chmod +x /usr/local/bin/nacos_unreg.sh3、在应用yaml文件中增加prestop与terminationGracePeriodSeconds参数
apiVersion: v1
kind: Pod
metadata:
name: your-pod-name
spec:
terminationGracePeriodSeconds: 60 # 允许 Pod 优雅关闭的时间
containers:
- name: your-container-name
image: your-image
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "/usr/local/bin/nacos_unreg.sh 172.30.233.87:8848 xfshcloud-dxp 9208"]
4、验证
发表评论