Kubernetes中的跨命名空间通信

78 阅读1分钟

在这个例子中,我们将创建两个独立的应用程序,它们都将在各自的命名空间中运行。命名空间就像主集群中的虚拟集群。它们主要用于隔离相关组件组。你可以为集群中的每个环境使用命名空间,如开发、QA、暂存、沙盒、生产。另一种方法是使用应用程序名称。在这个例子中,我打算把这两种方法结合起来,以使事情在视觉上明显。如果你删除一个命名空间,里面的所有组件也会被删除。你可以使用kubectl config set-context --current --namespace={namespace} 命令来切换命名空间。

TCP服务器

结构

├── Makefile

文件

.env
TCP_HOST=0.0.0.0
main.go
package main
Docker文件
制作文件
## Build application binary.
namespace.yaml
apiVersion: v1
configmap.yaml
apiVersion: v1
部署.yaml
apiVersion: apps/v1
service.yaml
apiVersion: v1

HTTP服务器

结构

├── Makefile

文件

.env
HTTP_HOST=localhost
main.go
package main
Docker文件
制作文件
## Build application binary.
namespace.yaml
apiVersion: v1
configmap.yaml
apiVersion: v1
部署.yaml
apiVersion: apps/v1
service.yaml
apiVersion: v1

测试

首先你需要推送你的服务镜像,然后用make publishmake deploy 命令进行部署。

TCP服务器

$ make k8s-test

HTTP服务器

$ make k8s-test