Sidecar容器:帮助或增强应用程序功能的实用工具容器(Sidecar容器的示例包括日志托运人/监视者和监视代理)
代理/桥/适配器:将主容器连接到外部世界
你部署多容器pod的主要原因是当一个容器无法照顾到应用程序的每个方面时。例如,假设你为NGINX部署了一个pod,但需要一些东西来监控该容器的日志。要做到这一点,你可以部署一个多pod容器。
这里将引导你完成将多容器pod部署到Kubernetes集群的过程。具体来说,我们要创建一个有两个容器的pod,其中一个运行NGINX Web服务器,与第二个容器共享一个卷。然后第二个容器将向第一个容器写入数据,以展示多容器pod如何交互。
完成这项工作所需的唯一的一件事就是需要一个正在运行的Kubernetes集群。集群启动并运行后,就可以部署多容器Pod。
一、如何定义多容器容器
与Kubernetes领域中的所有内容一样,我们在YAML文件中定义我们的多容器容器。因此,使用以下命令创建新文件:
nano multi-pod.yml
在该文件中,粘贴以下内容:
apiVersion: v1
kind: Pod
metadata:
name: multi-pod
spec:
restartPolicy: Never
volumes:
-
name: shared-data
emptyDir: {}containers:
-
name: nginx-container
image: nginx
volumeMounts:- name: shared-data
mountPath: /usr/share/nginx/html
- name: shared-data
- name: ubuntu-container
image: ubuntu
volumeMounts:- name: shared-data
mountPath: /pod-data
command: ["/bin/sh"]
args: ["-c", "echo Hello, A5idc > /pod-data/index.html"]
看一下YAML文件。你会看到我们已经部署了一个基于NGINX镜像的容器,作为我们的Web服务器。第二个容器名为ubuntu-container,部署了一个基于Ubuntu镜像的容器,并将 "Hello, A5idc"的文字写入第一个容器提供的index.html文件中。
保存并关闭该文件。
二、如何部署多容器pod
要部署此多容器容器,请发出以下命令:
kubectl apply -f multi-pod.yml
一旦pod部署完毕,给容器一点时间,让其真正变为运行状态(虽然只有第一个容器会继续运行),然后使用以下命令访问nginx-container shell:
kubectl exec -it multi-pod -c nginx-container -- /bin/bash
现在你应该发现自己处于nginx容器的bash提示符下。为了确保我们的第二个容器完成了任务,请发出以下命令:
curl localhost
您应该看到打印出“ Hello,A5idc”文本。
这就是你如何将一个多容器pod部署到你的Kubernetes集群中。虽然这是一个非常基本的例子,但它向你展示了容器如何在单个pod中进行交互。
A5互联https://www.a5idc.net/
- name: shared-data