【发布时间】:2019-09-17 09:16:42
【问题描述】:
我有 3 个服务,即轴突、命令和查询。我正在尝试通过 Kubernetes 运行它们。使用 docker-compose 和 swarm 可以完美运行。但不知何故不能通过 K8s 工作。 出现以下错误:
Connecting to AxonServer node axonserver:8124 failed: UNAVAILABLE: Unable to resolve host axonserver
以下是我的配置文件。
`
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: axonserver
labels:
app: axonserver
spec:
serviceName: axonserver
replicas: 1
selector:
matchLabels:
app: axonserver
template:
metadata:
labels:
app: axonserver
spec:
containers:
- name: axonserver
image: axoniq/axonserver
env:
- name: AXONSERVER_HOSTNAME
value: axonserver
imagePullPolicy: Always
ports:
- name: grpc
containerPort: 8124
protocol: TCP
- name: gui
containerPort: 8024
protocol: TCP
`
这里是命令服务 yaml 也包含服务。
apiVersion:
kind: Pod
metadata:
name: command-service
labels:
name: peanuts
app: axonserver
spec:
replicas: 1
template:
metadata:
labels:
app: axonserver
spec:
containers:
- image: celcin/command-svc
name: command-service
ports:
- containerPort: 8080
restartPolicy: Always
status: {}
---
apiVersion: v1
kind: Service
metadata:
name: command-service
labels:
name: peanuts
app: axonserver
spec:
ports:
- name: "8081"
port: 8081
targetPort: 8080
selector:
labels:
app: axonserver
`
这是作为查询服务 yml 文件的最后一个服务
` apiVersion: v1
kind: Pod
metadata:
name: query-service
labels:
name: peanuts
app: axonserver
spec:
replicas: 1
template:
metadata:
labels:
app: axonserver
spec:
containers:
- image: celcin/query-svc
name: query-service
ports:
- containerPort: 8080
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: query-service
labels:
name: peanuts
app: axonserver
spec:
ports:
- name: "8082"
port: 8082
targetPort: 8080
selector:
labels:
app: axonserver`
【问题讨论】:
-
我认为 axon-deployment.yml 文件有问题但不知道如何解决
-
您通常使用 docker-compose 进行本地开发,因为它只能在单个 docker 引擎上构建和工作。 Docker stack 和 docker service 命令需要一个 Docker Swarm(由默认配置)或 Kubernetes 集群,它们是迈向生产的一步。 Docker Desktop 带有 Kubernetes 和内置的 Compose 控制器,启用它就像在设置中勾选一个框一样简单。现在,您可以使用 Docker Compose 文件和原生 Docker API for stacks 来管理本地 Kubernetes 集群上的应用程序/服务。
-
如果您更喜欢 Kubernetes 部署 YAML,您可以调查此 docker-compose 部署并将其映射到 Kubernetes YAML。我确信有一些工具可以帮助您进行此映射:kubernetes.io/docs/tasks/configure-pod-container/…
-
我的目标是在 kubernetes 上运行相同的应用程序,也是开发目的。谢谢你,我正在检查你的例子
标签: kubernetes axon