我在docker官网上没怎么找到有curl工具的镜像busybox内没有只有简单的网络命令。于是自己动手做了一个,方法如下:
创建Dockerfile文件
From ubuntu:latest
#安装curl telnet 和常用ping ifconfig等网络命令
RUN apt-get update && apt-get install -y curl telnet net-tools
打包镜像上传至私有镜像仓库
//打包镜像
sudo docker build -t core.harbor.shell.com:32042/library/busyboxtools:v1 .
//上传至私有镜像仓库
sudo docker push core.harbor.shell.com:32042/library/busyboxtools:v1
在k8s中临时使用
kubectl run ubuntu-test --image=core.harbor.shell.com:32042/library/busyboxtools:v1 --command -- sleep 3600
这样就可以在default的namespace下看到
//kubectl get pod
NAME READY STATUS RESTARTS AGE
ubuntu-test 1/1 Running 22 22h
//进入pod就可以使用curl命令对内部地址进行测试了
//kubectl exec -it ubuntu-test -- /bin/sh
# curl -v http://geoserver.cephfs.svc.cluster.local:8888/geoserver
* Trying 22.102.210.216:8888...
* TCP_NODELAY set
* Connected to geoserver.cephfs.svc.cluster.local (22.102.210.216) port 8888 (#0)
> GET /geoserver HTTP/1.1
> Host: geoserver.cephfs.svc.cluster.local:8888
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 302
< X-Frame-Options: SAMEORIGIN
< Location: /geoserver/index.html
< Content-Length: 0
< Date: Tue, 19 Apr 2022 01:39:05 GMT
<
* Connection #0 to host geoserver.cephfs.svc.cluster.local left intact