springcloud in k8s springcloud项目部署到k8s
原git代码:https://github.com/wengmingdong/springcloudk8s.git
实验git代码:https://gitee.com/seaapex2020/springcloudk8s.git
引用git代码: https://github.com/wengmd07/scloudk8scfg.git
一、创建spring cloud eureka的k8s的yaml
[root@hjwds20-73 springcloudk8s]# cd eureka/ && mvn clean install -Dmaven.test.skip=true
[root@hjwds20-73 springcloudk8s]# docker build -t harbor.od.com/library/eureka:v1 .
[root@hjwds20-73 springcloudk8s]# docker push harbor.od.com/library/eureka:v1
[root@hjwds20-73 eureka]# cat eureka-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: eureka
spec:
replicas: 1
template:
metadata:
labels:
app: eureka
spec:
containers:
- name: eureka
image: harbor.od.com/library/eureka:v1
env:
- name: AUTHOR
value: eureka
ports:
- containerPort: 7000
[root@hjwds20-73 eureka]# cat eureka-service.yaml
apiVersion: v1
kind: Service
metadata:
name: eureka-server
spec:
ports:
- port: 7000
protocol: TCP
targetPort: 7000
type: NodePort
selector:
app: eureka
# cat eureka-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
name: app-ingress
spec:
rules:
- host: eureka.od.com
http:
paths:
- backend:
serviceName: eureka-server
servicePort: 7000
部署
1、kubectl create -f eureka-deployment.yaml
2、kubectl get pod -o wide
3、查看pod日志: kubectl logs -f
kubectl logs -f --tail 1000 eureka-64c877d644-hk6jj
2020-09-22 02:36:56.248 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager]
2020-09-22 02:36:56.261 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'refreshScope': registering with JMX server as MBean [org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope]
2020-09-22 02:36:56.278 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,context=2f686d1f,type=ConfigurationPropertiesRebinder]
2020-09-22 02:36:56.290 INFO 1 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0
2020-09-22 02:36:56.291 INFO 1 --- [ main] o.s.c.n.e.s.EurekaServiceRegistry : Registering application eureka-server with eureka with status UP
2020-09-22 02:36:56.297 INFO 1 --- [ Thread-13] o.s.c.n.e.server.EurekaServerBootstrap : Setting the eureka configuration..
2020-09-22 02:36:56.298 INFO 1 --- [ Thread-13] o.s.c.n.e.server.EurekaServerBootstrap : Eureka data center value eureka.datacenter is not set, defaulting to default
2020-09-22 02:36:56.298 INFO 1 --- [ Thread-13] o.s.c.n.e.server.EurekaServerBootstrap : Eureka environment value eureka.environment is not set, defaulting to test
2020-09-22 02:36:56.322 INFO 1 --- [ Thread-13] o.s.c.n.e.server.EurekaServerBootstrap : isAws returned false
2020-09-22 02:36:56.328 INFO 1 --- [ Thread-13] o.s.c.n.e.server.EurekaServerBootstrap : Initialized server context
2020-09-22 02:36:56.329 INFO 1 --- [ Thread-13] c.n.e.r.PeerAwareInstanceRegistryImpl : Got 1 instances from neighboring DS node
2020-09-22 02:36:56.329 INFO 1 --- [ Thread-13] c.n.e.r.PeerAwareInstanceRegistryImpl : Renew threshold is: 1
2020-09-22 02:36:56.329 INFO 1 --- [ Thread-13] c.n.e.r.PeerAwareInstanceRegistryImpl : Changing status to UP
2020-09-22 02:36:56.337 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 7000 (http) with context path ''
2020-09-22 02:36:56.341 INFO 1 --- [ Thread-13] e.s.EurekaServerInitializerConfiguration : Started Eureka Server
2020-09-22 02:36:56.344 INFO 1 --- [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 7000
2020-09-22 02:36:56.348 INFO 1 --- [ main] c.w.s.eureka.EurekaServiceApplication : Started EurekaServiceApplication in 8.402 seconds (JVM running for 9.121)
4、kubectl create -f eureka-service.yaml
5、kubectl create -f eureka-ingress.yaml
6、查看结果
二、创建spring cloud config server的k8s的yaml
mvn clean install -Dmaven.test.skip=true
docker build -t harbor.od.com/library/config:v1 .
[root@hjwds20-73 config]# cat config-server-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: config-server
spec:
replicas: 1
template:
metadata:
labels:
app: config-server
spec:
containers:
- name: config-server
image: harbor.od.com/library/config:v1
env:
- name: AUTHOR
value: config-server
ports:
- containerPort: 12000
[root@hjwds20-73 config]# cat config-server-service.yaml
apiVersion: v1
kind: Service
metadata:
name: config-server
spec:
ports:
- port: 12000
protocol: TCP
targetPort: 12000
type: NodePort
selector:
app: config-server
部署
kubectl apply -f config-server-deployment.yaml
kubectl apply -f config-server-service.yaml
3、查看结果
三、创建spring cloud config client的k8s的yaml
部署
mvn clean install -Dmaven.test.skip=truedocker build -t harbor.od.com/library/config-client:v1 .
[root@hjwds20-80 springcloudk8s]# cat config-client-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: config-client
spec:
replicas: 1
template:
metadata:
labels:
app: config-client
spec:
containers:
- name: config-client
image: harbor.od.com/library/config-client:v1
env:
- name: AUTHOR
value: config-client
ports:
- containerPort: 13000
[root@hjwds20-80 springcloudk8s]# cat config-client-service.yaml
apiVersion: v1
kind: Service
metadata:
name: config-client
spec:
ports:
- port: 13000
protocol: TCP
targetPort: 13000
type: NodePort
selector:
app: config-client
[root@hjwds20-80 springcloudk8s]# cat config-client-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
name: client-ingress
spec:
rules:
- host: client.od.com
http:
paths:
- backend:
serviceName: config-client
servicePort: 13000
kubectl apply -f config-client-deployment.yaml
kubectl apply -f config-client-service.yaml
kubectl apply -f config-client-ingress.yaml
查看结果
(1) 获取config-client暴露的端口
[root@hjwds20-71 eureka]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
config-client NodePort 192.168.146.60 <none> 13000:30490/TCP 8m45s
config-server NodePort 192.168.32.40 <none> 12000:30996/TCP 22m
eureka-server NodePort 192.168.113.60 <none> 7000:30698/TCP 16h
[root@hjwds20-71 eureka]# curl 192.168.146.60:13000/info
dev22
dev22就是来自github上的