可以按照下文步骤,将 Demo 部署到本地集群。
完成示例将需要的步骤如下:
请确保本地安装如下环境,以提供容器运行时、Kubernetes集群及访问工具
通过以下命令启动本地 Kubernetes 集群
minikube start
通过 kubectl 检查集群正常运行,且 kubectl 绑定到默认本地集群
kubectl cluster-info
通过以下命令为示例项目创建独立的 Namespace dubbo-demo
,同时开启 sidecar 自动注入。
# 初始化命名空间并开启sidecar自动注入 kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-go-samples/mesh-proxy-demo/mesh/deploy/Namespace.yml # 切换命名空间 kubens dubbo-demo
# 部署 Service kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-go-samples/mesh-proxy-demo/mesh/deploy/provider/Service.yml # 部署 Deployment kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-go-samples/mesh-proxy-demo/mesh/deploy/provider/Deployment.yml
以上命令创建了一个名为 server-demo
的 Service,注意这里的 service name 与项目中的 dubbo 应用名是一样的。
接着 Deployment 部署了一个 2 副本的 pod 实例,至此 Provider 启动完成。
可以通过如下命令检查启动日志。
# 查看 pod 列表 kubectl get pods -l app=server-demo # 查看 pod 部署日志 kubectl logs your-pod-id
这时 pod 中应该有一个 dubbo provider 容器实例,同时还有一个 Envoy Sidecar 容器实例。
# 部署 Service kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-go-samples/mesh-proxy-demo/mesh/deploy/consumer/Service.yml # 部署 Deployment kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-go-samples/mesh-proxy-demo/mesh/deploy/consumer/Deployment.yml
部署 consumer 与 provider 是一样的,这里也保持了 K8S Service 与 Dubbo consumer application name(在 dubbogo.yml 中定义) 一致
dubbo: application: name: server-demo
Dubbo Consumer 服务声明中还指定了要消费的 Provider 服务(应用)名
consumer: mesh-enable: true references: GreeterClientImpl: protocol: tri provided_by: server-demo
继执行 3.3 步骤后, 检查启动日志,查看 consumer 完成对 provider 服务的消费。
# 查看 pod 列表 kubectl get pods -l app=client-demo # 查看 pod 部署日志 kubectl logs your-pod-id # 查看 pod isitio-proxy 日志 kubectl logs your-pod-id -c istio-proxy
具体日志情况可参考 Java 版本对应 demo
Istio 官网查看 如何启动 dashboard。