1.build docker镜像
每一个服务里面都有一个docker file文件,刚开始我手动build那个docker file,发现build出来,没有tag,然后重新看了下项目,发现大佬已经把build全写进travis_docker_push.sh
,本地起把开头的echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
去掉,重新定义下DOCKER_USERNAME
就好.
2.k8s启动
yaml
文件是bookstore.yml
,注意下自己k8s的版本,yaml
文件里面有的apiVersion
有的在不同版本上会deprecated
,然后kubectl apply -f bookstore.yml
,顺利的话会一把起来:
pod:
service
gateway上面有个NodePort
service,映射端口30080
,本地localhost:30080
3.skaffold启动
通过skaffold启动的集群,当文件或者jar包发生变化时,可以重新deploy
到集群里面去,并且如果本地调试的时候,在pod上面开启jdwp
,Cloud code
会自动把service
和pod
上的流量打到idea上来
步骤:
-
配置环境变量,并切到项目下运行
skaffold dev
-
idea
安装cloud code
插件,并运行Cloud code:Kubernetes
,然后debug启动,控制台输出了很多forward
信息.这里主要把k8s
集群中的service
和pod
上面的流量打过来,我挑了两行解释下:-
转发service流量
本机启动后,端口为8081(似乎是随机分配的一个端口),然后
service
的流量会打过来Port forwarding service/gateway in namespace bookstore-microservices, remote port 8080 -> http://127.0.0.1:8081
-
转发pod流量
这个就是远程debug的功能(jdwp),pod项目启动的时候会开放
5005
端口,本机启动的时候会attach
上去,远程有访问,流量就会进来.
Port forwarding pod/bookstore-microservices-domain-payment-84b9948fb-wgcgw in namespace bookstore-microservices, remote port 5005 -> http://127.0.0.1:5010
流量转发的功能,我在
gateway
的pod上面看到了一个tunnel0
的网卡,不知道和这个有没有关系,最后访问http://localhost:30080
,流量打到了idea
上面:
-