Kubernetes实战(二十七)-pod内多容器运行

1 在一个pod中创建多个容器

1.1 YAML文件示例

# cat multi-pods.yaml 
---
apiVersion: v1
kind: Pod
metadata:name: multi-pods
spec:containers:- name: blue-pod-containerimage: busybox:1.31.1command: ["sleep"]args:    ["1000"]- name: green-pod-containerimage: busybox:1.30.1command: ["sleep"]args:    ["10000"]- name: yellow-pod-containerimage: busybox:1.30.1command: ["sleep"]args:    ["100000"]
...

1.2 生成Pod

# kubectl create -f multi-pods.yaml 
pod/multi-pods created

1.3 确认Pod信息

使用kubectl get pods命令可以获取此pod的详细信息,可以看到READY显示为3/3,说明包含三个容器全部正常启动,整体状态STATUS为Running状态,Pod本身的IP为10.254.176.3,Pod名称为multi-pods。

# kubectl get pods -o wide
NAME         READY   STATUS    RESTARTS   AGE   IP             NODE              NOMINATED NODE   READINESS GATES
multi-pods   3/3     Running   0          27s   10.254.176.3   192.168.163.131   <none>           <none>

然后可以使用kubectl describe查看pod的详细信息:

# kubectl describe pod/multi-pods
Name:         multi-pods
Namespace:    default
Priority:     0
Node:         192.168.163.131/192.168.163.131
Start Time:   Sun, 09 Feb 2020 04:34:18 -0500
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.254.176.3
IPs:IP:  10.254.176.3
Containers:blue-pod-container:Container ID:  docker://881da8a39e6a9999cce25ef227c97e8680379d97cd190e6a98ff25f49a3f7469Image:         busybox:1.31.1Image ID:      docker-pullable://busybox@sha256:6915be4043561d64e0ab0f8f098dc2ac48e077fe23f488ac24b665166898115aPort:          <none>Host Port:     <none>Command:sleepArgs:1000State:          RunningStarted:      Sun, 09 Feb 2020 04:34:19 -0500Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-kzxwt (ro)green-pod-container:Container ID:  docker://b60d1cf06ff68ffae44e13f33d84b12b8525707af6de1836abdc5905a135166fImage:         busybox:1.30.1Image ID:      docker-pullable://busybox@sha256:4b6ad3a68d34da29bf7c8ccb5d355ba8b4babcad1f99798204e7abb43e54ee3dPort:          <none>Host Port:     <none>Command:sleepArgs:10000State:          RunningStarted:      Sun, 09 Feb 2020 04:34:19 -0500Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-kzxwt (ro)yellow-pod-container:Container ID:  docker://8e500fef966ab861843d46076bdb07fa5443041bcc6b20c2a415ef5aed181cdfImage:         busybox:1.30.1Image ID:      docker-pullable://busybox@sha256:4b6ad3a68d34da29bf7c8ccb5d355ba8b4babcad1f99798204e7abb43e54ee3dPort:          <none>Host Port:     <none>Command:sleepArgs:100000State:          RunningStarted:      Sun, 09 Feb 2020 04:34:19 -0500Ready:          TrueRestart Count:  0Environment:    <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from default-token-kzxwt (ro)
Conditions:Type              StatusInitialized       True Ready             True ContainersReady   True PodScheduled      True 
Volumes:default-token-kzxwt:Type:        Secret (a volume populated by a Secret)SecretName:  default-token-kzxwtOptional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300snode.kubernetes.io/unreachable:NoExecute for 300s
Events:Type    Reason     Age    From                      Message----    ------     ----   ----                      -------Normal  Scheduled  2m47s  default-scheduler         Successfully assigned default/multi-pods to 192.168.163.131Normal  Pulled     2m46s  kubelet, 192.168.163.131  Container image "busybox:1.31.1" already present on machineNormal  Created    2m46s  kubelet, 192.168.163.131  Created container blue-pod-containerNormal  Started    2m46s  kubelet, 192.168.163.131  Started container blue-pod-containerNormal  Pulled     2m46s  kubelet, 192.168.163.131  Container image "busybox:1.30.1" already present on machineNormal  Created    2m46s  kubelet, 192.168.163.131  Created container green-pod-containerNormal  Started    2m46s  kubelet, 192.168.163.131  Started container green-pod-containerNormal  Pulled     2m46s  kubelet, 192.168.163.131  Container image "busybox:1.30.1" already present on machineNormal  Created    2m46s  kubelet, 192.168.163.131  Created container yellow-pod-containerNormal  Started    2m46s  kubelet, 192.168.163.131  Started container yellow-pod-container

可以看到在Containers段显示了三个容器的详细信息,而在Event中也可以看到三个容器的创建过程。

1.4 进入容器

Pod中只有一个容器时,使用如下命令即可进入到容器之中:

执行命令:kubectl exec -it pod名称 sh或者bash

而如果有多个容器时,则需要使用-c指定容器名称:

执行命令:kubectl exec -it pod名称 -c 容器名称 sh或者bash

比如进入multi-pods中名为yellow-pod-container :

[root@host131 Pod]# kubectl exec -it multi-pods -c yellow-pod-container sh
/ # ps -ef
PID   USER     TIME  COMMAND1 root      0:00 sleep 1000006 root      0:00 sh11 root      0:00 ps -ef
/ # busybox |grep BusyBox
BusyBox v1.30.1 (2019-05-09 01:23:43 UTC) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.BusyBox is a multi-call binary that combines many common Unixlink to busybox for each function they wish to use and BusyBox
/ # hostname
multi-pods
/ # 

pause镜像确认,使用docker ps命令可以确认到包含pause在内的4个容器,pause容器作为此Pod的根容器,负责整个Pod的网络信息

[root@host131 Pod]# docker ps |grep multi-pods
8e500fef966a        64f5d945efcc                               "sleep 100000"           8 minutes ago       Up 8 minutes                            k8s_yellow-pod-container_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0
b60d1cf06ff6        64f5d945efcc                               "sleep 10000"            8 minutes ago       Up 8 minutes                            k8s_green-pod-container_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0
881da8a39e6a        6d5fcfe5ff17                               "sleep 1000"             8 minutes ago       Up 8 minutes                            k8s_blue-pod-container_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0
44d9b05a6d1b        gcr.io/google_containers/pause-amd64:3.1   "/pause"                 8 minutes ago       Up 8 minutes                            k8s_POD_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0

首先确认pause的id

[root@host131 Pod]# docker inspect k8s_POD_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0 |grep Id"Id": "44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb",

然后可以确认到在其余的容器中都和此Pod有所关联,可以看到Pause作为根容器为其余容器所起到的作用。

[root@host131 Pod]# docker inspect k8s_yellow-pod-container_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0 |grep 44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb"ResolvConfPath": "/var/lib/docker/containers/44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb/resolv.conf","HostnamePath": "/var/lib/docker/containers/44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb/hostname","NetworkMode": "container:44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb","IpcMode": "container:44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb","io.kubernetes.sandbox.id": "44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb"
[root@host131 Pod]# 
[root@host131 Pod]# docker inspect k8s_green-pod-container_multi-pods_default_3c744cee-6ce3-4de3-99ab-f8909fee0147_0 |grep 44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb"ResolvConfPath": "/var/lib/docker/containers/44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb/resolv.conf","HostnamePath": "/var/lib/docker/containers/44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb/hostname","NetworkMode": "container:44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb","IpcMode": "container:44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb","io.kubernetes.sandbox.id": "44d9b05a6d1b9f33e170a70a4db304b92e4dbbdd3d0a38efaca0513ad8b86acb"

另外如果不使用-c指定容器时,缺省会进入第一个容器中

[root@host131 Pod]# kubectl exec -it multi-pods sh
Defaulting container name to blue-pod-container.
Use 'kubectl describe pod/multi-pods -n default' to see all of the containers in this pod.
/ # 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

学习Android的第七天

目录 Android EditText 输入框 设置默认提示文本 范例 获得焦点后全选组件内所有文本内容 范例 限制EditText输入类型 android:inputType 值列表 范例 设置最小行&#xff0c;最多行&#xff0c;单行&#xff0c;多行&#xff0c;自动换行 范例 设置文字间隔 范例 …

React环境配置

1.安装Node.js Node.js官网&#xff1a;https://nodejs.org/en/ 下载之后按默认选项安装好 重启电脑即可自动完成配置 2.安装React 国内使用 npm 速度很慢&#xff0c;可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。 ①使用 winR 输入 cmd 打开终端 ②依…

npm后Truffle找不到命令(ubantu20系统)

Truffle找不到命令 方法1方法2 方法1 # 编辑.profile vim ~/.profile # 在.profile末尾把nodejs的解压路径添加到$PATH环境变量中 PATH"$HOME/bin:$HOME/.local/bin:路径:$PATH" source 文件方法2 #ls -l 在nodejs的bin目录下查看truffle链接的脚本文件 truffle -&…

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…

突破编程_C++_面试(基础知识(6))

面试题14&#xff1a;什么是 RAII 编程方法 RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是C的发明者 Bjarne Stroustrup 提出的概念,也称为资源获取就是初始化&#xff0c;是一种管理资源、避免泄漏的编程方法。 它的基本思想是在对象的构造函数中获…

Hadoop-生产调优

第1章 HDFS-核心参数 1.1 NameNode内存生产配置 1&#xff09;NameNode 内存计算 每个文件块大概占用 150 byte&#xff0c;一台服务器 128G 内存为例&#xff0c;能存储多少文件块呢&#xff1f; 128 * 1024 * 1024 * 1024 / 150byte ≈ 9.1 亿G MB KB Byte 2&#xff09…

Leetcode 279 完全平方数

题意理解&#xff1a; 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4、9 和 16 都是完全平方数&#xff0c…

FPGA_工程_按键控制的基于Rom数码管显示

一 信号 框图&#xff1a; 其中 key_filter seg_595_dynamic均为已有模块&#xff0c;直接例化即可使用&#xff0c;rom_8*256模块&#xff0c;调用rom ip实现。Rom_ctrl模块需要重新编写。 波形图&#xff1a; 二 代码 module key_fliter #(parameter CNT_MAX 24d9_999_99…

AT_abl_d 题解

线段树优化 DP 的板子。 题意 给定一个数列&#xff0c;求出它最长的子序列&#xff0c;满足相邻元素之差不大于 k k k。 分析 对于这类最长子序列的题目&#xff0c;有一个 DP 套路&#xff0c;设 d p i dp_i dpi​ 表示以 a i a_i ai​ 结尾的最长合法子序列长度&…

Filter 实现过滤符合条件的请求并落库

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、配置过滤器类 二、定义数据表、实体类、Mapper 2.1 DDL 2.2 实体类 2.3 Mapper 三、创建一个过滤器 四、实现 Nacos 配置…

通用的网站炫酷底部美化代码分享

网站炫酷底部美化代码介绍 这段代码采用了最新的前端技术&#xff0c;确保在各种浏览器和设备上都能完美展现。它包含响应式设计元素&#xff0c;这意味着无论用户是通过电脑、平板还是手机访问您的网站&#xff0c;底部都能呈现出最佳的效果。 此外&#xff0c;我们还特别注…

怎么做?这么做。

一、每天输入 每天读2——3篇文章&#xff0c;可以是行业趋势、技术推文(与自己的工作有关的方向)&#xff0c; 每天坚持一年就会是 1000 篇。 推荐&#xff1a; 大厂的技术博客&#xff1a;纯技术类&#xff0c;美团技术团队、阿里技术团队&#xff1b; 科技资讯类&#xff1…

电子电器架构 —— 网关测试脚本分析

电子电器架构 —— 网关测试 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何 消耗你的人和事,多看一眼都是你的不对。非…

海外云手机的核心优势

随着5G时代的到来&#xff0c;云计算产业正处于高速发展的时期&#xff0c;为海外云手机的问世创造了一个可信任的背景。在资源有限且需求不断增加的时代&#xff0c;将硬件设备集中在云端&#xff0c;降低个人用户的硬件消耗&#xff0c;同时提升性能&#xff0c;这一点单单就…

微软.NET6开发的C#特性——类、结构体和联合体

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;下面我就重点讲讲微软.NET6开发人员需要知道的C#特性。 C#经历了多年发展&#xff0c; 进行了多次重大创新&#xf…

[嵌入式系统-8]:软件(Software)、代码(Code)、程序(Program)三者的区别

概述 在工作中&#xff0c;软件、代码、程序这三个词经常被换用&#xff0c;大部分情况下&#xff0c;这种混用都不会出问题&#xff0c;实际上&#xff0c;它们是不同的概念&#xff0c;有相交的部分&#xff0c;也有不同的地方。本文就简单阐述一下他们的区别。 在计算机领…

c++基本介绍

C是一种高级的编程语言&#xff0c;广泛应用于软件开发和系统编程。它是C语言的扩展&#xff0c;提供了更多的特性和功能。 以下是一个简单的C教程&#xff0c;可以帮助你入门&#xff1a; 安装C编译器&#xff1a; 首先&#xff0c;你需要安装一个C编译器&#xff0c;例如GCC…

14 归并排序和其他排序

1.归并排序 2.计数排序 1. 归并排序 基本思想 建立在归并操作上的一种排序算法,采用分治法的一个典型应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff0c;将两个有序表合成一个称为二路归并。 原数组无序&#xff0c;以中间分割为两个数组&#xff0c;…

vue 实现 手机号中间4位分格输入框(暂无选中标识

vue 实现 手机号中间4位分格输入框 效果图 <!--4位分格输入框--> <!--<template><div><div style"display: flex;"><div class"phone-input"><inputv-for"(digit, index) in digits":key"index"…