containers(container to consignee)

admin 463 0

大家好,如果您还对containers不太了解,没有关系,今天就由本站为大家分享containers的知识,包括container to consignee的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

一、k8s一个pod加载多个containers,指定pod运行的node

Kubernetes有着自己特定的调度算法与策略,有Master中的Scheduler组件来实现,根据Node资源使用情况自动调度Pod的创建,通常可以满足我们大部分的需求。但是有时我们希望可以将某些Pod调度到特定硬件节点上,这里采用目前最为简单的nodeName和nodeSelector来实现Pod调度。

假设以下场景:有三个Node,分别为107、108、109,创建Deployments来部署Tomcat应用,指定在107节点上创建Pod。

Pod.spec.nodeName将Pod直接调度到指定的Node节点上,会跳过Scheduler的调度策略,该匹配规则是强制匹配。

apiVersion: extensions/v1beta1

nodeSelector: 107#直接通过节点名称调度到指定节点

image: harbor/tomcat:8.5-jre8

Pod.spec.nodeSelector通过kubernetes的label-selector机制选择节点,由调度器调度策略匹配label,而后调度Pod到目标节点,该匹配规则属于强制约束。

kubectl label nodes 107 type=backEndNode1

apiVersion: extensions/v1beta1

image: harbor/tomcat:8.5-jre8

二、mac中containers文件夹能删除吗

mac中containers文件夹里有三个资源库,有点可以删除,操作方法如下:

1、首先在mac电脑主界面找到并打开“终端terminal”。

2、打开对应的需需删除空文件夹的录目,如图即cd进行对应的录目。输入ls命令查询当前录目所有的文件。

3、输入 find.-type d-emtpy查看当前录目下所有的空文件夹列表。

4、也可以直接输入 find+文件夹路径-type d-emtpy查看指定路径下的空文件列表,即find/Users/Chang/Downloads/test123-type d-empty。

5、输入find.-type d-empty|xargs-n 1 rm-rf删除当前录目下的所以空文件夹,执行后再输入ls查看是否已全部删除完毕。

三、如何在 K8S 的 Pod 内连续执行 Container这种方法别错过

1、出于某些目的,有时需要在 Kubernetes的一个 Pod中,连续一次运行多个 Container。这种游戏有明确结束预期的运行,即 Kubernetes的 Job。但是,虽然一个 Job可以在一个 Pod内运行多个 Container,然而运行方式是并发的。

2、一种方法是在业务层处理。比如,通过共享的本地 Volume,使用文件锁的机制,可以实现多个并发的 Container依次执行。但这需要在业务逻辑中,把并发强行改为同步,增加了开发复杂度。如果能使用 Kubernetes本身的机制实现,则减免了很大的开发工作量。

3、经过调查发现,虽然 containers不能依次运行,但是可以 initContainers可以。它是在 containers运行前,执行的初始化操作,依次结束运行并且无异常后,正式的 containers才会运行。利用这一点,可以实现多个任务的依次执行,把前面的任务写到 initContainers、最后一个任务写到 containers即可。

4、以下为三个 Containter依次执行的样例。

5、 Volcano前身是kube-batch,声称在调度和管理方面,对原生Job进行了优化。但是在核心逻辑上,还是一样的,不能支持指定 Container顺序执行。

6、 stateDiagram [ ]→ Pending Pending→ Aborted Pending→ Running Aborted→ Pending Running→ Aborted Running→ Completed Running→ Terminated Completed→ [*** ] Terminated→ []

7、在实际测试中,暂时没有发现在当前业务场景下,比原生Job有什么优势。以下是实测配置。

8、上面与原生相比,虽然多了 tasks这是一层概念,但是在功能上并无帮助。

9、另外,Volcano文档缺失严重,与 kube-batch也不兼容。目前看来有很多不清楚的问题。

10、 argo是更合适按顺序、依赖关系执行的。但是经评估,它有一个重大缺陷,不适合当前场景。

11、 argo的每个Task都是独立的Pod,不同Pod未必在同一台机器上。而Volume则必须使用NFS之类的网络存储位置,性能不符合某些需要密集本地IO的场景。

12、 argo是形式上最合适的,可以避免使用 initContainers这种邪道。但是独立 Pod因为问题导致它不适合这个场景。

13、选用Volcano还需要更深入的了解。

四、报关单填制,2970bags装在3个containers里,“件数”栏怎么填

本栏目应填报有外包装的进(出)口货物的实际件数。特殊情况下填报要求如下:

1、舱单件数为集装箱(TEU)的,填报集装箱个数。

2、舱单件数为托盘的,填报托盘数。

本栏目不得填报为零,裸装货物填报为1。

所以,进口的话仓单件数已成事实,按进口仓单申报;

出口的话,从合理性角度来说,建议还是申报2970包,出口装货单(和出口仓单一致)也打2970包,二者相符。

OK,本文到此结束,希望对大家有所帮助。