在这个例子中,我们将创建两个独立的应用程序,它们都将在各自的命名空间中运行。命名空间就像主集群中的虚拟集群。它们主要用于隔离相关组件组。你可以为集群中的每个环境使用命名空间,如开发、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 publish 和make deploy 命令进行部署。
TCP服务器
$ make k8s-test
HTTP服务器
$ make k8s-test