我想将自己隐藏在kubernetes容器中并执行CURL命令。不幸的是,我在任何地方都找不到可卷曲的工作图像(并且与kubernetes兼容)...
要执行到容器中,我正在做一个简单的kubectl exec -it POD_ID /bin/bash
有人知道一个包含CURL二进制文件且不会在kubernetes中崩溃的最小docker镜像吗?
PS:这是出于测试目的,因此不需要坚如磐石或其他任何东西
Thx
更新1 这是我用来部署所有潜在映像的Yaml:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: blue
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
name: blue
spec:
containers:
- name: blue-website
image: SOME_IMAGE:latest
resources:
requests:
cpu: 0.1
memory: 200
我不认为它坏了,因为它适用于某些图像。
答案 0 :(得分:3)
您可以跳过清单,并使用kubectl run
根据需要旋转其中一个吊舱。
即
kubectl run curl -it --rm --image=tutum/curl -- sh
这将根据curl
映像创建名为tutum/curl
的部署,并在其中提供一个交互式(-it
)外壳。退出时,部署将被删除(--rm
)。
答案 1 :(得分:2)
您之所以得到<select>
<option value="null">Select...</option>
<option value="venusaur">Venusaur</option>
<option value="blastoise">Blastoise</option>
<option value="charizard">Charizard</option>
</select>
<div id="result"></div>
,是因为容器没有任何要处理的任务,因此在启动后即完成。一种简单的解决方法是在容器中运行命令以使其无限期运行。这样您就可以执行到容器中并运行curl了。
在这里,对Yaml进行了修改:
CrashLoopBackOff
答案 2 :(得分:1)
您可以使用此图像nightfury1204/alpine-curl
我为自己的测试目的创建了上面的图像。
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: curl
labels:
name: curl
spec:
serviceName: "curl"
selector:
matchLabels:
app: curl
replicas: 1
template:
metadata:
labels:
app: curl
spec:
containers:
- name: curl
image: nightfury1204/alpine-curl
command:
- "sh"
- "-c"
- >
while true; do
sleep 3600;
done
要执行到pod中,请使用此kubectl exec -it curl-0 sh
答案 3 :(得分:0)
使用https://hub.docker.com/r/byrnedo/alpine-curl/中的byrnedo/alpine-curl
图像。
另外,在部署中不必使用latest
标签。没有它就可以工作,只是
containers:
- name: blue-website
image: byrnedo/alpine-curl