适配k8s的eureka注册中心,可普通docker,docker-compose,k8s部署,支持安全认证,k8s集群部署
1.6K
spring-boot:2.3.12.RELEASE
spring-cloud:Hoxton.SR12
https://gitee.com/myprofile/spring-cloud/
https://github.com/lhstack/spring-cloud/
# 关闭安全认证
docker run --name eureka -p 8761:8761 -e SECURITY_ENABLE=false -e JAVA_OPTS="-Xmx128m -Xms128m -Dspring.application.name=eureka" -d lhstack/eureka
# 默认开启了安全认证,默认用户名admin 密码 123456
# 修改认证用户名和密码
docker run --name eureka -p 8761:8761 -e SECURITY_USERNAME=admin1 -e SECURITY_PASSWORD=654321 -e JAVA_OPTS="-Xmx128m -Xms128m" -d lhstack/eureka
version: '3'
services:
eureka-1:
container_name: eureka-1
image: lhstack/eureka
ports:
- 8761:8761
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
logging:
options:
max-size: "1kb"
max-file: "1"
environment:
JAVA_OPTS: "-Xmx128m -Xms128m"
SECURITY_ENABLE: true
SECURITY_USERNAME: admin
SECURITY_PASSWORD: admin
EUREKA_SERVER_URLS: "http://admin:[email protected]:8761/eureka,http://admin:[email protected]:8761/eureka,http://admin:[email protected]:8761/eureka"
networks:
eureka:
ipv4_address: 182.168.100.100
eureka-2:
container_name: eureka-2
image: lhstack/eureka
ports:
- 8762:8761
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
logging:
options:
max-size: "1kb"
max-file: "1"
environment:
JAVA_OPTS: "-Xmx128m -Xms128m"
SECURITY_ENABLE: true
SECURITY_USERNAME: admin
SECURITY_PASSWORD: admin
EUREKA_SERVER_URLS: "http://admin:[email protected]:8761/eureka,http://admin:[email protected]:8761/eureka,http://admin:[email protected]:8761/eureka"
networks:
eureka:
ipv4_address: 182.168.100.101
eureka-3:
container_name: eureka-3
image: lhstack/eureka
ports:
- 8763:8761
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
logging:
options:
max-size: "1kb"
max-file: "1"
environment:
JAVA_OPTS: "-Xmx128m -Xms128m"
SECURITY_ENABLE: true
SECURITY_USERNAME: admin
SECURITY_PASSWORD: admin
EUREKA_SERVER_URLS: "http://admin:[email protected]:8761/eureka,http://admin:[email protected]:8761/eureka,http://admin:[email protected]:8761/eureka"
networks:
eureka:
ipv4_address: 182.168.100.102
networks:
eureka:
driver: bridge
ipam:
driver: default
config:
- subnet: 182.168.0.0/16
version: '3'
services:
eureka-1:
container_name: eureka-1
image: lhstack/eureka
ports:
- 8761:8761
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
logging:
options:
max-size: "1kb"
max-file: "1"
environment:
JAVA_OPTS: "-Xmx128m -Xms128m"
SECURITY_ENABLE: false
EUREKA_SERVER_URLS: "http://182.168.100.100:8761/eureka,http://182.168.100.101:8761/eureka,http://182.168.100.102:8761/eureka"
networks:
eureka:
ipv4_address: 182.168.100.100
eureka-2:
container_name: eureka-2
image: lhstack/eureka
ports:
- 8762:8761
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
logging:
options:
max-size: "1kb"
max-file: "1"
environment:
JAVA_OPTS: "-Xmx128m -Xms128m"
SECURITY_ENABLE: false
EUREKA_SERVER_URLS: "http://182.168.100.100:8761/eureka,http://182.168.100.101:8761/eureka,http://182.168.100.102:8761/eureka"
networks:
eureka:
ipv4_address: 182.168.100.101
eureka-3:
container_name: eureka-3
image: lhstack/eureka
ports:
- 8763:8761
deploy:
resources:
limits:
cpus: '1'
memory: '256M'
logging:
options:
max-size: "1kb"
max-file: "1"
environment:
JAVA_OPTS: "-Xmx128m -Xms128m"
SECURITY_ENABLE: false
EUREKA_SERVER_URLS: "http://182.168.100.100:8761/eureka,http://182.168.100.101:8761/eureka,http://182.168.100.102:8761/eureka"
networks:
eureka:
ipv4_address: 182.168.100.102
networks:
eureka:
driver: bridge
ipam:
driver: default
config:
- subnet: 182.168.0.0/16
eureka.yml
apiVersion: v1
kind: Namespace
metadata:
name: eureka
---
apiVersion: v1
kind: ConfigMap
metadata:
name: eureka
namespace: eureka
data:
SECURITY_USERNAME: "admin"
SECURITY_PASSWORD: "123456"
EUREKA_SERVER_URLS: "http://admin:[email protected]:8761/eureka"
---
apiVersion: v1
kind: Service
metadata:
name: eureka-headless
namespace: eureka
spec:
type: ClusterIP
clusterIP: None
selector:
app: eureka-replica
ports:
- name: http
port: 8761
---
apiVersion: v1
kind: Service
metadata:
name: eureka
namespace: eureka
spec:
type: ClusterIP
ports:
- name: http
port: 8761
selector:
app: eureka
clusterIP: 10.43.87.61
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: eureka-cluster
namespace: eureka
spec:
replicas: 2 #必须和REPLICAS一致
serviceName: eureka-headless
selector:
matchLabels:
app: eureka-replica
template:
metadata:
labels:
app: eureka-replica
spec:
containers:
- name: eureka
image: lhstack/eureka
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8761
env:
- name: IS_STATEFUL_SET
value: "true"
- name: NAMESPACE
value: "eureka"
- name: SECURITY_ENABLE
value: "true"
- name: SECURITY_USERNAME
valueFrom:
configMapKeyRef:
key: SECURITY_USERNAME
name: eureka
- name: SECURITY_PASSWORD
valueFrom:
configMapKeyRef:
key: SECURITY_PASSWORD
name: eureka
- name: SERVICE_NAME
value: "eureka-headless"
- name: REPLICAS
value: "2"
- name: JAVA_OPTS
value: "-Xmx512m -Xms512m"
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 100m
memory: 512Mi
readinessProbe:
httpGet:
path: /actuator/health
port: 8761
initialDelaySeconds: 5
failureThreshold: 5
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 2
livenessProbe:
httpGet:
path: /actuator/health
port: 8761
initialDelaySeconds: 60
failureThreshold: 5
periodSeconds: 120
successThreshold: 1
timeoutSeconds: 2
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: eureka-deploy
namespace: eureka
spec:
replicas: 1
selector:
matchLabels:
app: eureka
template:
metadata:
labels:
app: eureka
spec:
containers:
- name: eureka
image: lhstack/eureka
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8761
readinessProbe:
httpGet:
path: /actuator/health
port: 8761
initialDelaySeconds: 5
failureThreshold: 5
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 2
livenessProbe:
httpGet:
path: /actuator/health
port: 8761
initialDelaySeconds: 60
failureThreshold: 5
periodSeconds: 120
successThreshold: 1
timeoutSeconds: 2
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 100m
memory: 512Mi
env:
- name: SECURITY_ENABLE
value: "true"
- name: SECURITY_USERNAME
valueFrom:
configMapKeyRef:
key: SECURITY_USERNAME
name: eureka
- name: SECURITY_PASSWORD
valueFrom:
configMapKeyRef:
key: SECURITY_PASSWORD
name: eureka
- name: EUREKA_SERVER_URLS
valueFrom:
configMapKeyRef:
key: EUREKA_SERVER_URLS
name: eureka
- name: JAVA_OPTS
value: "-Xmx512m -Xms512m -Deureka.client.fetch-registry=true -Deureka.client.register-with-eureka=true"
kubectl apply -f eureka.yml
helm下载地址: https://github.com/helm/helm/releases
helm相关模板代码地址: https://gitee.com/myprofile/spring-cloud/tree/master/eureka-server/k8s/helm
# 在服务器上进入eureka-server/k8s/helm目录
# 安装集群
helm install eureka-cluster .
# 查看集群
helm list
# 修改集群数量
helm upgrade --set replicas=5 eureka-cluster .
Content type
Image
Digest
Size
109.5 MB
Last updated
almost 5 years ago
docker pull lhstack/eureka