我是否必须为从本地主机获取 shell 提供服务?
Do I have to do service to a get shell from localhost?
我想使用 ssh 从本地主机连接到 Pod。有什么方法可以使用 ssh [Pod_IP]
而不使用 kubectl exec -it [Pod] /bin/bash
进行连接吗?
结果如ERROR: ssh: connect to host [ip] port 22: Connection refused
所示。
我认为您可以通过在目标 Pod
上安装 openssh-server
来实现这个目标
例如:
与 Pod 建立 SSH 连接:
$ kubectl exec -it <Pod_name> -- /bin/bash
$ apt-get update
$ apt-get install -y openssh-server
确保 SSHD 服务已启动并且 运行:
$ service ssh status
必要时启动它:
$ service ssh start
如果要更改某些特定设置,请编辑 /etc/ssh/sshd_config
文件,然后重新启动 SSH 服务。
使用 Pod IP 地址从本地计算机通过 SSH 检查连接。
更新:
我使用以下 Pod 配置来建立与 Centos 7 容器的 SSH 连接:
apiVersion: v1
kind: Pod
metadata:
name: centos
spec:
containers:
- name: centos
image: centos:latest
command: [ "/bin/bash", "-c", "yum install openssh-server -y && /usr/bin/ssh-keygen -A && /usr/sbin/sshd -p
22 -f /etc/ssh/sshd_config && tail -f /dev/null" ]
securityContext:
privileged: true
我想使用 ssh 从本地主机连接到 Pod。有什么方法可以使用 ssh [Pod_IP]
而不使用 kubectl exec -it [Pod] /bin/bash
进行连接吗?
结果如ERROR: ssh: connect to host [ip] port 22: Connection refused
所示。
我认为您可以通过在目标 Pod
上安装openssh-server
来实现这个目标
例如:
与 Pod 建立 SSH 连接:
$ kubectl exec -it <Pod_name> -- /bin/bash
$ apt-get update
$ apt-get install -y openssh-server
确保 SSHD 服务已启动并且 运行:
$ service ssh status
必要时启动它:
$ service ssh start
如果要更改某些特定设置,请编辑 /etc/ssh/sshd_config
文件,然后重新启动 SSH 服务。
使用 Pod IP 地址从本地计算机通过 SSH 检查连接。
更新:
我使用以下 Pod 配置来建立与 Centos 7 容器的 SSH 连接:
apiVersion: v1
kind: Pod
metadata:
name: centos
spec:
containers:
- name: centos
image: centos:latest
command: [ "/bin/bash", "-c", "yum install openssh-server -y && /usr/bin/ssh-keygen -A && /usr/sbin/sshd -p
22 -f /etc/ssh/sshd_config && tail -f /dev/null" ]
securityContext:
privileged: true