背景:
参照 Kubernetes 1.20.5搭建nacos,在kubernetes集群中集成了nacos服务。想体验下服务的注册与发现性能。当然了 也想体验下sentinel各种的集成,反正就是spring cloud alibaba全家桶的残缺体验啊……一步一步来吧哈哈哈。先来一下服务的注册与发现。
特地鸣谢https://blog.didispace.com/spring-cloud-alibaba-1/,程序猿DD的系列文章昨天无意间看到的,很不错,曾经珍藏。
一. maven打包构建利用IMAGE镜像
留神:以下maven打包构建流程根本copy自https://blog.didispace.com/spring-cloud-alibaba-1/。所以就不做代码的搬运工了。我的项目演示的代码都能够去程序猿DD大佬的github去下载。
关 于服务提供者与服务消费者alibaba-nacos-discovery-server为服务提供者 alibaba-nacos-discovery-client-common为服务消费者强调一下。
1. 构建alibaba-nacos-discovery-server image
嗯 还的强调一下服务提供者!这个是……
因为我集体打包测试是要在kubernets集群中应用,并且跟nacos服务在同一命名空间。连贯nacos这里我就应用了外部服务名。package 打包 target目录下生成alibaba-nacos-discovery-server-0.0.1-SNAPSHOT.jar jar包。
上传包到服务器改名app.jar ,复用Dockerfile
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD app.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
打包镜像,将镜像上传到镜像仓库(集体应用了腾讯云的公有仓库,当然了也能够本人装置harbor做仓库)。
mv alibaba-nacos-discovery-server-0.0.1-SNAPSHOT.jar app.jar
docker build -t ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-server:0.1 .
docker push ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-server:0.1
2 . 构建libaba-nacos-discovery-client-common image
根本步骤与上一步一样:
二. Kubernetes集群部署服务
1. 部署alibaba-nacos-discovery-server
cat alibaba-nacos-discovery-server.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: alibaba-nacos-discovery-server
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
selector:
matchLabels:
app: alibaba-nacos-discovery-server
template:
metadata:
labels:
app: alibaba-nacos-discovery-server
spec:
containers:
- name: talibaba-nacos-discovery-server
image: ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-server:0.1
ports:
- containerPort: 8001
resources:
requests:
memory: "256M"
cpu: "250m"
limits:
memory: "512M"
cpu: "500m"
imagePullSecrets:
- name: tencent
---
apiVersion: v1
kind: Service
metadata:
name: alibaba-nacos-discovery-server
labels:
app: alibaba-nacos-discovery-server
spec:
ports:
- port: 8001
protocol: TCP
targetPort: 8001
selector:
app: alibaba-nacos-discovery-server
kubectl apply -f alibaba-nacos-discovery-server.yaml -n nacos
kubectl get pods -n nacos
登陆nacos治理地址能够发现服务治理-服务列表有alibaba-nacos-discovery-server注册
2. 部署alibaba-nacos-discovery-client-common
消费者 消费者 消费者。本人老记不住
cat alibaba-nacos-discovery-client-common.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: alibaba-nacos-discovery-common
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
selector:
matchLabels:
app: alibaba-nacos-discovery-common
template:
metadata:
labels:
app: alibaba-nacos-discovery-common
spec:
containers:
- name: talibaba-nacos-discovery-common
image: ccr.ccs.tencentyun.com/XXXX/alibaba-nacos-discovery-client-common:0.1
ports:
- containerPort: 9000
resources:
requests:
memory: "256M"
cpu: "250m"
limits:
memory: "512M"
cpu: "500m"
imagePullSecrets:
- name: tencent
---
apiVersion: v1
kind: Service
metadata:
name: alibaba-nacos-discovery-common
labels:
app: alibaba-nacos-discovery-common
spec:
ports:
- port: 9000
protocol: TCP
targetPort: 9000
selector:
app: alibaba-nacos-discovery-common
kubectl apply -f alibaba-nacos-discovery-client-common.yaml -n nacos
这个时候登陆nacos治理页面应该是有alibaba-nacos-discovery-client-common服务注册了。
3. 更改alibaba-nacos-discovery-server正本数验证服务
认真看了下https://blog.didispace.com/spring-cloud-alibaba-1/ 他启动了两个alibaba-nacos-discovery-server实例,嗯 两个服务提供者。好验证一下nacos将服务上线下线的根底性能。正好我也扩容一下顺便补习一下scale命令
kubectl scale deployment/alibaba-nacos-discovery-server --replicas=2 -n nacos
后面拜访alibaba-nacos-discovery-server服务都是只有10.0.5.120一个ip,deployment扩容实现后拜访alibaba-nacos-discovery-client-common(消费者)放回了两个服务提供者轮训形式的两个ip。
察看nacos治理web页面,服务列表alibaba-nacos-discovery-server实例数量,衰弱实例都曾经变成2:
点开alibaba-nacos-discovery-server服务详情。嗯集群下呈现了两个实例的具体信息。
看到集群实例配置这里有个下线的性能想体验一下:
下线了10.5.208的实例 再拜访一下。发现的确只有10.0.5.120节点了:
复原实例拜访服务提供者10.5.208。点击上线,不做其余设置。持续拜访消费者利用应该是两个ip的轮询权重一样的:
简略记录 简略记录。千里之行;始于足下……..
对了补充一下 订阅者列表哈哈哈,这个中央要输出 没有抉择框。好劳神啊….
发表回复