【发布时间】:2019-09-09 02:20:30
【问题描述】:
我是 Docker 和 Kubernetes 的新手。 使用的技术:
- Dotnet Core 2.2
- Asp.NET Core WebAPI 2.2
- Docker for windows(Edge) 已启用 Kubernetes 支持
- Code
我将两个服务托管在两个 docker 容器 container1 和 container2 中。
下面是我的 deploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: webapi-dockerkube
spec:
replicas: 1
template:
metadata:
labels:
app: webapi-dockerkube
spec:
containers:
- name: webapi-dockerkube
image: "webapidocker:latest"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /api/values
port: 80
readinessProbe:
httpGet:
path: /api/values
port: 80
- name: webapi-dockerkube2
image: "webapidocker2:latest"
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /api/other/values
port: 80
readinessProbe:
httpGet:
path: /api/other/values
port: 80
当我运行命令时:
kubectl create -f .\deploy.yaml
我的状态为CrashLoopBackOff。
但是当我只配置一个容器时,同样运行良好。
检查日志时出现以下错误:
Error from server (BadRequest): a container name must be specified for pod webapi-dockerkube-8658586998-9f8mk, choose one of: [webapi-dockerkube webapi-dockerkube2]
【问题讨论】:
-
你能发布 crashlooping pod 的“kubectl logs -p POD_NAME”的最后几行吗?
-
服务器出错(BadRequest):必须为 pod webapi-dockerkube-8658586998-9f8mk 指定容器名称,请选择以下之一:[webapi-dockerkube webapi-dockerkube2]
-
好的,您需要指定以下容器之一:“kubectl logs -p POD_NAME webapi-dockerkube”或“kubectl logs -p POD_NAME webapi-dockerkube2”
-
对于这两个错误来自服务器(未找到):未找到豆荚“POD_NAME”
-
您可以通过运行
kubectl get po获取您的 pod 名称,您将看到类似于 webapi-dockerkube-xxxx 的 pod 名称。将 POD_NAME 替换为该名称。
标签: docker asp.net-core kubernetes microservices docker-for-windows