k8s部署使用有状态服务statefulset部署eureka集群,需登录认证

一、构建eureka集群镜像

1、编写dockerfile文件,此处基础镜像为arm版本,eureka目录中文件内容:application-dev.yml、Dockerfile、eureka-server-1.0-SNAPSHOT.jar(添加登录认证模块,文章最后附上下载连接)

bash 复制代码
FROM  mdsol/java8-jdk-arm:latest
COPY eureka /opt/eureka
RUN chmod -R 777 /opt/eureka/*
ENTRYPOINT ["java","-jar","/opt/eureka/eureka-server-1.0-SNAPSHOT.jar","--spring.config.location=classpath:/bootstrap.yml,/opt/eureka/application-dev.yml","&"]

2、配置文件基础信息,application-dev.yml ,此处可忽略暂不修改

bash 复制代码
spring:
    application:
        name: eurekaServer
    jackson:
        date-format: yyyy-MM-dd HH:mm:ss
        time-zone: GMT+8
        default-property-inclusion: non_null
    security:
      user:
        name: eureka
        password: e4!u$8&R*kA111
server:
    port: 8761
eureka:
  instance:
    hostname: 10.10.127.106
    lease-expiration-duration-in-seconds: 60
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 30000
  client:
    #不向Eureka注册自己
    register-with-eureka: false
    #不检查其他的EurekaServer节点
    fetch-registry: false
    service-url:
      #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址)
      defaultZone: http://10.10.127.106:8761/eureka/

二、使用有状态服务StatefulSet部署eureka集群

1、配置文件使用configmap挂载至eureka集群中,账号密码可以自己调整修改

bash 复制代码
apiVersion: v1
data:
  application.yml: |
    spring:
        application:
            name: eurekaServer
        jackson:
            date-format: yyyy-MM-dd HH:mm:ss
            time-zone: GMT+8
            default-property-inclusion: non_null
        security:
          user:
            name: usr
            password: password

    server:
        port: 8761

    eureka:
      instance:
        hostname: eureka
        lease-expiration-duration-in-seconds: 60
      server:
        enable-self-preservation: true
        eviction-interval-timer-in-ms: 3000
      client:
        #不向Eureka注册自己
        register-with-eureka: true
        #不检查其他的EurekaServer节点
        fetch-registry: true
        service-url:
          #设置eureka服务器所在的地址,查询服务和注册服务程序都注册到这个地址(服务暴露的地址)
          defaultZone: http://usr:password@eureka-dev-0.eureka-dev:8761/eureka/,http://usr:password@eureka-dev-1.eureka-dev:8761/eureka/,http://uer:password@eureka-dev-2.eureka-dev:8761/eureka/
kind: ConfigMap
metadata:
  name: eureka-config-dev
  namespace: paas

2、service 配置文件内容,eureka-svc.yaml

bash 复制代码
apiVersion: v1
kind: Service
metadata:
  name: eureka-dev
  namespace: paas
spec:
  ports:
  - name: http
    port: 8761
    protocol: TCP
    targetPort: 8761
  selector:
    app: eureka-dev
  type: NodePort

3、StatefulSet 文件信息,eureka-sts.yaml ,需修改参数 EUREKA_CLIENT_SERVICEURL_DEFAULTZONE ,启动命令需配置configmap文件同步修改,可保持默认启动。

bash 复制代码
apiVersion: apps/v1
kind: StatefulSet
metadata:
  labels:
    app: eureka-dev
  name: eureka-dev
  namespace: paas
spec:
  replicas: 3
  selector:
    matchLabels:
      app: eureka-dev
  serviceName: eureka-dev
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: eureka-dev
    spec:
      containers:
      - args:
        - --spring.config.location=classpath:/bootstrap.yml,/opt/eureka/application.yml
        command:
        - java
        - -jar
        - /opt/eureka/eureka-server-1.0-SNAPSHOT.jar
        env:
        - name: EUREKA_INSTANCE_HOSTNAME
          value: $(POD_NAME)
        - name: EUREKA_INSTANCE_ID
          value: $(POD_NAME)
        - name: EUREKA_CLIENT_SERVICEURL_DEFAULTZONE
          value: http://usr:password@eureka-dev-0.eureka-dev:8761/eureka/,http://usr:password@eureka-dev-1.eureka-dev:8761/eureka/,http://usr:password@eureka-dev-2.eureka-dev:8761/eureka/
        image: harbor.dcos.xixian.unicom.local/armtianti/cetp-eureke-arm-dev:latest
        imagePullPolicy: IfNotPresent
        name: eureka-dev
        ports:
        - containerPort: 8761
          protocol: TCP
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /opt/eureka/application.yml
          name: eureka-config-dev
          subPath: application.yml
      volumes:
      - configMap:
          defaultMode: 420
          items:
          - key: application.yml
            path: application.yml
          name: eureka-config-dev
        name: eureka-config-dev

4、查看集群部署状态

5、登录eureka集群,查看是否已添加登录认证,此处登录地址 http://masterIP:nodeport 方式登录

eureka-server-1.0-SNAPSHOT.jar 下载地址:

https://pan.baidu.com/s/1RVPxZ_1riYlAWcL6_At8Ew

提取码:kuer

相关推荐
徐子童15 小时前
网络协议---TCP协议
网络·网络协议·tcp/ip·面试题·1024程序员节
扫地的小何尚2 天前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI3 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好4 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少6 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈7 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好8 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔8 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云12 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件13 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节