SpringCloud-eureka集群搭建

SpringCloud-eureka集群搭建

1.单机版集群

修改配置文件为我们需要的配置文件:

spring:
  application:
    name: eureka
  security:
    user:
      name: admin
      password: admin123
server:
  port: 8761

eureka:
  region: auto-MI
  datacenter: zhonguancun
  environment: auto-MI-eureka
  client:
    service-url:
      defaultZone: http://admin:admin123@localhost:8761/eureka
    healthcheck:
      enabled: true
    register-with-eureka: true
    fetch-registry: true
    allow-redirects: true
  instance:
    appname: ${spring.application.name}
    virtualHostName: ${spring.application.name}
    secureVirtualHostName: ${spring.application.name}
    nonSecurePort: ${server.port}
    lease-renewal-interval-in-seconds: 10
    lease-expiration-duration-in-seconds: 90
    prefer-ip-address: false
    hostname: localhost
  server:
    enable-self-preservation: true
    eviction-interval-timer-in-ms:  3000

添加host文件

127.0.0.1 eureka1
127.0.0.1 eureka2
127.0.0.1 eureka3

打包jar

mvn clean compile package -Dmaven.skip.test=true

启动jar,覆写eureka配置

java -Deureka.client.register-with-eureka=true -Deureka.client.service-url.defaultZone=http://admin:admin123@eureka1:8761/eureka,http://admin:admin123@eureka2:8761/eureka,http://admin:admin123@eureka3:8761/eureka -Deureka.instance.hostname=eureka1 -jar eureka.jar 

2.基于kubernetes的集群配置

创建Statesfulset部署配置文件

apiVersion: v1
kind: Service
metadata:
  name: eureka
  namespace: development
spec:
  ports:
    - port: 8761
      targetPort: 8761
  clusterIP: None
  selector:
    app: eureka

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: eureka
  namespace: development
spec:
  serviceName: "eureka"
  selector:
    matchLabels:
      app: eureka
  replicas: 3
  template:
    metadata:
      labels:
        app: eureka
    spec:
      imagePullSecrets:
        - name: regharbor
      containers:
        - name: eureka
          image: 192.168.163.251:25532/bxy/eureka:2.0
          imagePullPolicy: Always
          env:
            - name: JVM_PARAMS
              value: "-Deureka.client.service-url.defaultZone=http://admin:admin123@eureka-0.eureka:8761/eureka/,\
              http://admin:admin123@eureka-1.eureka:8761/eureka/,\
              http://admin:admin123@eureka-2.eureka:8761/eureka/ -Deureka.instance.hostname=${POD_NAME}.eureka -D-Deureka.client.register-with-eureka=true"
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
          resources:
            limits:
              cpu: "4"
              memory: 2048Mi
            requests:
              cpu: "2"
              memory: 512Mi
          ports:
            - containerPort: 8761

附上对应的Dockerfile

FROM alpine
MAINTAINER yang.zhao
WORKDIR /opt
#copy jar files
ADD ./jdk1.8.0_221.tar.gz /opt/jdk8/
COPY ./target/*.jar /opt/jar/app.jar
COPY ./glibc-2.29-r0.apk /opt/
ADD ./main.tar.gz  /Users/temp/exp/
#install glibc
RUN wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
RUN apk add glibc-2.29-r0.apk && rm -rf  *.apk
WORKDIR /opt
ARG JAR_FILE
#configuraton jdk environments
ENV JAR_HOME /opt/jar
ENV PATH  $PATH:$JAVA_HOME
ENV JAVA_OPTIONS=""
ENV JVM_PARAMS="-Deureka.client.service-url.defaultZone=${EUREKA_NODES}"
#ENV SPRING_OPTIONS=" --spring.profiles.active=test \
#--eureka.client.service-url.defaultZone=http://admin:admin123@192.168.163.252:8761/eureka"
#mkdir user directory
COPY ./$JAR_FILE $JAR_HOME/app.jar
#start java app
CMD $JAVA_HOME/java $JAVA_OPTIONS $JVM_PARAMS -jar  $JAR_HOME/app.jar

构建Dockerfile

docker build -t eureka:2.x .

部署到kubernetes集群

kubectl apply -f state.yaml
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值