Kubernetes中的容器开启sshd服务:

在Kubernetes中,运维人员可以很方便的通过Kubectl exec登录某台节点排查问题。
但对于一些开发,或者供应商人员,给其完全的权限就不是很合适了。

前提:

需要kubernetes容器与宿主机在同一个网段中,即大二层打通。
如果是传统模式,则只能登录到kubernetes集群中操作。

解决方案:

第一步:安装openssh服务:

yum install openssh-server 

由于kubernetes需要提权才能够使用systemctl命令,因此手动启动/usr/sbin/sshd报错:

Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key

第二步:手动创建这些key:

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key

第三步:手动启动sshd:

/usr/sbin/sshd

第四步:修改root密码并尝试连接:

passwd