如何通过SSH连接到AWS上托管的Kubernetes节点或服务器?我在AWS上托管了Kubernetes服务器和节点。我可以在本地笔记本电脑上使用kubectl get node命令查看节点和服务器。我需要为我的节点创建一个持久卷,但我无法ssh到它。是否有任何特定的方法可以将ssh导入节点或服务器?
qjp7pelc1#
使用kubectl ssh node NODE_NAME这个kubectl插件来自这里。https://github.com/luksa/kubectl-plugins。我已经验证过了。它的工作原理类似于openshift中的oc命令。
kubectl ssh node NODE_NAME
swvgeqrz2#
试试这个:ssh -i <path of the private key file> admin@<ip of the aws kube instances>perm文件应位于$HOME/.ssh/kube_rsa中
ssh -i <path of the private key file> admin@<ip of the aws kube instances>
ggazkfy83#
访问Kubernetes节点的方法和使用ssh访问其他linux机器的方法类似,只需使用该节点的外部ip尝试ssh,就可以用这种方法登录。
uubf1zoe4#
如果工作节点位于私有子网中,则可以使用bastion host和ssh代理转发,如https://aws.amazon.com/blogs/security/securely-connect-to-linux-instances-running-in-a-private-amazon-vpc/中所定义
7cwmlq895#
我还没有在AWS上具体尝试过,但是您可以使用以下技巧将shell安装到Node上。如果您需要访问Kubernetes群集的底层节点(并且您没有直接访问权限-通常如果您在其他地方托管Kubernetes),您可以使用以下部署来创建Pod,您可以在其中使用kubectl exec登录,并且可以访问节点的IPC和/node-fs下的完整文件系统。执行chroot /node-fs。不建议继续运行此命令,但如果您需要访问节点,此命令将有所帮助。因为它是守护进程集,所以它会在每个节点上启动其中一个Pod。
kubectl exec
/node-fs
chroot /node-fs
apiVersion: apps/v1 kind: DaemonSet metadata: name: privpod spec: selector: matchLabels: mydaemon: privpod template: metadata: labels: mydaemon: privpod spec: hostNetwork: true hostPID: true hostIPC: true containers: - name: privcontainer image: johnnyb61820/network-toolkit securityContext: privileged: true command: - tail - "-f" - /dev/null volumeMounts: - name: nodefs mountPath: /node-fs - name: devfs mountPath: /dev volumes: - name: nodefs hostPath: path: / - name: devfs hostPath: path: /dev
这是Cloud Native Applications with Docker and Kubernetes的附录C.13。我发现这很有用,尤其是当我需要处理物理驱动器或类似的东西时。这不是你应该保持运行的东西,但在紧要关头会有所帮助。
5条答案
按热度按时间qjp7pelc1#
使用
kubectl ssh node NODE_NAME
这个kubectl插件来自这里。https://github.com/luksa/kubectl-plugins。我已经验证过了。它的工作原理类似于openshift中的oc命令。
swvgeqrz2#
试试这个:
ssh -i <path of the private key file> admin@<ip of the aws kube instances>
perm文件应位于$HOME/.ssh/kube_rsa中
ggazkfy83#
访问Kubernetes节点的方法和使用ssh访问其他linux机器的方法类似,只需使用该节点的外部ip尝试ssh,就可以用这种方法登录。
uubf1zoe4#
如果工作节点位于私有子网中,则可以使用bastion host和ssh代理转发,如https://aws.amazon.com/blogs/security/securely-connect-to-linux-instances-running-in-a-private-amazon-vpc/中所定义
7cwmlq895#
我还没有在AWS上具体尝试过,但是您可以使用以下技巧将shell安装到Node上。
如果您需要访问Kubernetes群集的底层节点(并且您没有直接访问权限-通常如果您在其他地方托管Kubernetes),您可以使用以下部署来创建Pod,您可以在其中使用
kubectl exec
登录,并且可以访问节点的IPC和/node-fs
下的完整文件系统。执行chroot /node-fs
。不建议继续运行此命令,但如果您需要访问节点,此命令将有所帮助。因为它是守护进程集,所以它会在每个节点上启动其中一个Pod。这是Cloud Native Applications with Docker and Kubernetes的附录C.13。我发现这很有用,尤其是当我需要处理物理驱动器或类似的东西时。这不是你应该保持运行的东西,但在紧要关头会有所帮助。