我是码头工人和库伯内特斯的新手。使用的技术:
我将两个服务托管到两个docker容器容器1和容器2中。
下面是我的部署。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
。
但是当我只配置了一个容器时,同样运行正常。检查日志时,我收到以下错误:来自服务器的错误(Bad请求):必须为pod webapi-dockerkube-86586998-9f8mk指定容器名称,选择其中之一:[webapi-dockerkube webapi-dockerkube2]
apiVersion: v1
kind: Pod
metadata:
name: two-containers
spec:
restartPolicy: Never
volumes:
- name: shared-data
emptyDir: {}
containers:
- name: nginx-container
image: nginx
volumeMounts:
- name: shared-data
mountPath: /usr/share/nginx/html
- name: debian-container
image: debian
volumeMounts:
- name: shared-data
mountPath: /pod-data
command: ["/bin/sh"]
args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]
这里共享多容器的示例,您可以使用该模板
您还可以查看使用的日志
Kubectl日志
检查crash循环返回的原因
您在同一个pod中运行两个容器,这两个容器都绑定到端口80。这在同一个pod内是不可能的。把一个pod想象成一个“服务器”,你不能让两个进程绑定到同一个端口。
针对您的情况的解决方案:使用pod内部的不同端口或使用单独的pod。从您的部署来看,似乎没有像文件系统这样的共享资源,所以很容易将容器分割成单独的单元。
请注意,如果您想让两个容器在具有不同端口的同一个pod中运行,更改pod定义是不够的。容器中的应用程序也必须绑定到不同的端口。
我正在尝试使用单个Service yaml在多个节点上设置对Pods的访问。Pods都有相同的标签(例如),但分布在多个节点上,而不是在单个节点上。 据我所知,我可以设置一个服务,通过节点端口转发对Pod的访问,比如: 其中访问节点上的端口30000会转发到pod上的端口5000。 如果我在多个节点上有pod,有没有一种方法可以让客户端访问一个endpoint,例如服务本身,从而在循环中获得任何p
从spring文档中,我看到我们可以一起拥有对等eureka服务器,因此对于Application.yml中的Eureka1,我可以拥有: 在Eureka服务器2中,我可以:
我正在使用Eclipse Juno,并且通过windows安装程序在我的PC中安装了Apache Tomcat/8.0.0-RC5。当我尝试在Eclipse中定义新服务器时,在Apache下,我没有Tomcat v8.0选项。它在Tomcat v7.0停止。如何让Apache Tomcat v8.0在Eclipse中运行?
null 我的问题是: 是否需要创建文件,然后在文件中引用它们,或者部署文件也可以嵌入pod定义? K8S文档似乎暗示的部分相当于定义一个pod。那是正确的吗?如果我想声明性地描述多pod部署呢?是否需要多个deployment.yml文件?
问题内容: 我想要我的Web应用程序的安全连接。因此,我想为我的wildfly 8.2.0服务器配置ssl。我已经在独立/配置文件夹中创建并存储了.keystore文件。 必须添加: 在standalone.xml文件中,但是有tag: 当我用上面指定的标签替换它时出现错误: 问题答案: 我已经为Wildfly 8.2.0配置了ssl。 步骤1:创建密钥库 步骤2:编辑configuration
我想在Docker容器中启动两个不同的服务,并在其中一个退出后立即退出容器。我查看了supervisor,但找不到如何让它在一个托管应用程序退出后立即退出。它试图重启它们多达三次,就像标准设置一样,然后什么也不做。主管是否能够做到这一点,或者是否有其他工具可以做到这一点?如果还有一种方法可以让两个托管程序都写入到stdout,并标记它们的应用程序名,则会有好处,例如: