kubernetes部署微服务spring cloud的简单例子
示例代码https://github.com/CodingSoldier/java-learn/tree/master/project/k8s-spring-cloud-csdncsdn下载地址(积分似乎无法修改)https://download.csdn.net/download/u010606397/11245542在本项目中,会部署eureka、gateway、app01、ap...
《docker+k8s教程》
示例代码 https://github.com/CodingSoldier/java-learn/tree/master/project/k8s-spring-cloud-csdn
csdn下载地址(积分似乎无法修改) https://download.csdn.net/download/u010606397/11245542
在本项目中,会部署eureka、gateway、app01、app02
先看下eureka的yaml配置
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-eureka-server
spec:
# 注册中心只能部署一个pod
replicas: 1
selector:
matchLabels:
app: eureka-server
template:
metadata:
labels:
app: eureka-server
spec:
containers:
- name: eureka-server
image: codingsoldier/eureka-server:latest
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 10001
---
apiVersion: v1
kind: Service
metadata:
# service的名字非常重要,必须跟application.properties的eureka.client.serviceUrl.defaultZone=http://server-eureka-server:10001/eureka/ 中的域名相同
name: server-eureka-server
spec:
selector:
app: eureka-server
# 使用NodePort类型的Service,绑定service的10001端口到宿主机,以便在物理机浏览器上看注册中心的信息
type: NodePort
ports:
- name: http
port: 10001
targetPort: 10001
# 暴露端口取值范围是30000-32767
nodePort: 30001
重要的有两点
1、注册中心pod数量只能为1个(只是演示,就这么着了。实际部署中可以部署集群,这太麻烦了)
2、Service的名字是 eureka.client.serviceUrl.defaultZone 的域名。见下图
补充,image用的是我的仓库,请改成自己的,在自己的机器上打成镜像
gateway、app01、app02的注册中心配置为
eureka.client.serviceUrl.defaultZone=http://server-eureka-server:10001/eureka/
为了能够在物理机上调用gateway,将gateway的service设置为NodePort类型(实际部署时,应该通过ingress或者云厂商提供的loadBlance调用网关。这里就不搞那么复杂了)
使用步骤
1、把jar包上传到所有node节点,打成镜像
2、在主节点部署服务
app01的/test01/test02/post接口会使用feign调用app02,调一下这个接口。
更多推荐
所有评论(0)