k8s中运行busybox
简介
参考百度百科
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。 BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。 有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。 简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。

前台运行BusyBox
1.28:docker pull registry.cn-chengdu.aliyuncs.com/qzcsbj/busybox:1.28
1.34
方式一:kubectl run
不常用,因为如果要写很多参数不方便
kubectl run -h
# Start the nginx pod using a different command and custom arguments
kubectl run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
每3600秒RESTART
kubectl run busybox --image=busybox:1.34 --command -- sleep 3600
如果设置的是60秒

方式二:从标准输入创建
cat << EOF的意思是以EOF输入字符为标准输入结束,就是当你输入cat << EOF的时候,你可以随意输入字符,但是当输入EOF的时候就结束了。
cat<<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- name: busybox
image: busybox:1.34
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always
EOF
或者:
# 从标准输入创建多个 YAML 对象
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep
spec:
containers:
- name: busybox
image: busybox
args:
- sleep
- "1000000"
---
apiVersion: v1
kind: Pod
metadata:
name: busybox-sleep-less
spec:
containers:
- name: busybox
image: busybox
args:
- sleep
- "1000"
EOF
方式三:yaml资源文件
command会覆盖容器默认要执行的命令,也就是Dokcerfile里面的CMD
可能找不到终端,所以需要指定sh(也可以写为/bin/sh)或者bash
-c,command,后面跟上要执行的命令
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
labels:
app: busybox
spec:
containers:
- name: busybox
image: busybox:1.34
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
imagePullPolicy: IfNotPresent
或者
command: ["sh","-c","sleep 3600"]
其它参考
https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#init-containers-in-use
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: busybox:1.28
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
initContainers:
- name: init-myservice
image: busybox:1.28
command: ['sh', '-c', "until nslookup myservice.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myservice; sleep 2; done"]
- name: init-mydb
image: busybox:1.28
command: ['sh', '-c', "until nslookup mydb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for mydb; sleep 2; done"]
k8s中运行busybox的更多相关文章
- 【K8S学习笔记】Part2:获取K8S集群中运行的所有容器镜像
		本文将介绍如何使用kubectl列举K8S集群中运行的Pod内的容器镜像. 注意:本文针对K8S的版本号为v1.9,其他版本可能会有少许不同. 0x00 准备工作 需要有一个K8S集群,并且配置好了k ... 
- 深入理解k8s中的访问控制(认证、鉴权、审计)流程
		Kubernetes自身并没有用户管理能力,无法像操作Pod一样,通过API的方式创建/删除一个用户实例,也无法在etcd中找到用户对应的存储对象. 在Kubernetes的访问控制流程中,用户模型是 ... 
- k8s中初始化容器(init container)的作用及其使用方法
		概述 在容器的部署过程中,有的时候需要在容器运行之前进行一些预配置的工作,比如下载配置,判断某些服务是否启动,修改配置等一些准备的工作,想要实现这些功能,在k8s中可以使用初始化容器,在应用容器运行之 ... 
- K8s中的volumes-容器数据存放类型及位置
		学习对象:kubectl explain pod.spec.volumes.pod.spec.containers.image.volumeMounts 介绍Volumes 容器内部也有自己的空间,但 ... 
- k8s 中 Pod 的控制器
		k8s 中 Pod 的控制器 前言 Replication Controller ReplicaSet Deployment 更新 Deployment 回滚 deployment StatefulS ... 
- 在 Docker 容器中运行应用程序
		案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 ... 
- k8s中yaml文常见语法
		在k8s中,所有的配置都是 json格式的.但为了读写方便,通常将这些配置写成yaml 格式,其运行的时候,还是会靠yaml引擎将其转化为json,apiserver 也仅接受json的数据类型. y ... 
- 转 docker创建私有仓库和k8s中使用私有镜像
		docker私有仓库建立 环境说明我们选取192.168.5.2做私有仓库地址yum install docker -y1.启动docker仓库端口服务 docker run -d -p 5000:5 ... 
- K8S中如何跨namespace 访问服务?为什么ping不通ClusterIP?
		1.K8S中如何跨namespace 访问服务? 2.在Pod中为什么ping不通ClusterIP? 简述: Rancher2.0中的一个用户,在K8S环境中,创建两个namespace,对应用进行 ... 
随机推荐
- actf2020upload
			actf2020upload .php后缀过滤 1.上传文件,要求后缀为.png/.gif/.jpg 2.抓包,后缀改成.phtml后放行,上传成功,访问地址,根目录下找到flag 
- 基础概念(2):怎么用cc来编译?
			怎么用cc来编译? 总结卡片: cc的使用可以很简单,指定要转换的程序文件就可以了,比如:cc hello.c. 按cc的规则(我这里是clang-llvm),程序文件以.c或.cpp为后缀. cc有 ... 
- 三张图秒懂Redis集群设计原理
			转载Redis Cluster原理 转载https://blog.csdn.net/yejingtao703/article/details/78484151 redis集群部署方式: 单机 主从 r ... 
- 学习AJAX必知必会(4)~JQuery发送Ajax请求
			一.JQuery发送Ajax请求 ■ 对于get和post请求,jQuery内部封装了Ajax请求的4个步骤和数据格式的设置 ■ 对于Ajax通用请求,jQuery内部封装了Ajax请求的4个步骤和数 ... 
- javaObject类—getClass方法
			1 package face_object; 2 /* 3 * Object:所有类的根类. 4 * Object是不断抽取而来的,具备所有对象都具备的共性内容. 5 * 常用的共性功能: 6 * 7 ... 
- ant -design vue a-tree 树形控件
			话不多说,先上代码. <a-tree v-if="this.treeData && this.treeData.length > 0" ref=&quo ... 
- 技术管理进阶——Leader应该关注成长慢的同学吗?
			原创不易,求分享.求一键三连 两个故事 我该怎么办? 在大学毕业的时候,恩师跟我说了一个故事: 有一个女同学跟他说,不知道毕业了该干撒,不知道该怎么办. 正处于「低谷期」的恩师突然一怔,想到貌似自己 ... 
- JAVA类加载器二 通过类加载器读取资源文件
			感谢原文作者:不将就! 原文链接:https://www.cnblogs.com/byron0918/p/5770684.html 一.getResourceAsStream方法 getResourc ... 
- java基础之设计模式之单例模式
			关于单例模式: 单例,即单一实例.因为在一些情况下,某些类的对象,我们只需要一个就可以了,所以我们要用到单例模式. 单例模式的目的是使得一个类中的一个静态对象成为系统中的唯一实例,提供一个访问该实例的 ... 
- HTML 代码复用
			前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果是制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面的数量上去了 ... 
