lsdopen/swiss-army-knifeswiss-army-knife是一个集成多种日常使用工具并内置SSH守护进程的容器镜像,旨在提供便捷的运维和管理环境。该镜像可快速部署于Docker单机或Kubernetes集群中,通过SSH远程访问容器内集成的工具集,满足日常运维、临时调试及多工具集成使用需求。
通过以下命令快速启动并访问容器:
bashpodman run -d -P --name swiss-army-knife docker.io/lsdopen/swiss-army-knife:latest ssh root@localhost -p $(podman port swiss-army-knife | awk -F\: '{print $2}')
bashpodman build -t swiss-army-knife . podman run -d -P --name swiss-army-knife localhost/swiss-army-knife:latest
bashpodman port swiss-army-knife # 输出示例:22/tcp -> 0.0.0.0:44563
bashssh root@localhost -p 44563 # 成功连接后将显示容器内终端 Last login: Wed Sep 2 10:49:55 2020 from 127.0.0.1 root@ef8ce90c0ea5:~#
bashpodman stop swiss-army-knife podman rm swiss-army-knife
通过kubectl命令直接创建部署和服务:
bash# 创建Deployment kubectl create deployment swiss-army-knife --image=lsdopen/swiss-army-knife:latest # 创建NodePort服务 kubectl create service nodeport swiss-army-knife --tcp=22:22
获取NodePort端口:
bashkubectl get svc swiss-army-knife # 输出示例: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE swiss-army-knife NodePort 172.31.107.24 <none> 22:30316/TCP 99s
通过任意Kubernetes节点的NodePort访问:
bashssh root@worker-node-01 -p 30316
创建以下YAML文件并应用到目标命名空间:
yaml--- apiVersion: apps/v1 kind: Deployment metadata: labels: app: swiss-army-knife name: swiss-army-knife spec: replicas: 1 selector: matchLabels: app: swiss-army-knife template: metadata: labels: app: swiss-army-knife spec: containers: - args: ["infinity"] command: ["sleep"] name: swiss-army-knife image: lsdopen/swiss-army-knife:latest --- apiVersion: v1 kind: Service metadata: labels: app: swiss-army-knife name: swiss-army-knife spec: ports: - name: 22-22 nodePort: 30316 port: 22 protocol: TCP targetPort: 22 selector: app: swiss-army-knife type: NodePort
应用配置:
bashkubectl apply -f <文件名>.yaml -n <目标命名空间>


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务