我在Kubernetes上做了一点R& D并在AWS上部署了集群。我使用KOPS进行繁重的工作并使用Terraform配置集群。
我的目标是在托管pod提供服务的节点上阻止对特定服务必不可少的端口时测试Kubernetes的行为。为此,我想ssh到我的主节点并手动阻止工作者端口。
我一直在运行以下命令:
ssh -i ~/.ssh/id_rsa admin@<master_ip>
只有以下回复
ssh: connect to host <master_ip> port 22: Connection refused
这是我用来创建群集的命令:
kops create cluster \
--name=${KOPS_NAME} \
--state=${KOPS_STATE_STORE} \
--zones=eu-central-1a,eu-central-1b,eu-central-1c \
--master-zones=eu-central-1a,eu-central-1b,eu-central-1c \
--node-count=5 \
--node-size=t2.micro \
--master-size=t2.micro \
--ssh-public-key=~/.ssh/id_rsa.pub \
--out=. \
--target=terraform
我的主人注册的AWS上的安全组允许端口22上的流量并运行
kops describe secret admin
表示存在归属于admin用户的公钥。
我不认为这是一个错误,因为在KOPS git上似乎没有其他人似乎有这个问题,而且,虽然我远非AWS的专家,但对我来说这似乎很奇怪AWS的问题。
修改
$> ssh -i ~/.ssh/id_rsa <adress>.elb.amazon.com -vvv
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug2: resolving "<address>.elb.amazonaws.com" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to <address>.elb.amazonaws.com [ip address] port 22.
答案 0 :(得分:0)
使用可以在配置群集时使用--bastion
标志。然后使用堡垒主机ssh成master。这种方法一直在为我们工作。