问题 28
您的 Oracle 云计算基础架构 Kubernetes 容器引擎 (OKE) 管理员在公共子网中创建了一个有一个节点池的 OKE 群集。管理员要求您提供其中一个节点的日志文件,以便进行故障排除。
您应该采取哪一步来获取日志文件?
说明
Kubernetes 集群是一组节点。节点是运行应用程序的机器。每个节点可以是物理机,也可以是虚拟机。节点的容量(CPU 数量和内存容量)在创建节点时定义。集群包括
- 一个或多个主节点(为实现高可用性,通常需要多个主节点)
- 一个或多个工作节点(有时称为节点)
使用 SSH 连接工作节点
如果在群集中创建节点池时提供了 SSH 公钥,则该公钥将安装在群集中的所有工作节点上。在 UNIX 和类 UNIX 平台(包括 Solaris 和 Linux)上,您可以使用 ssh 实用程序(SSH 客户端)通过 SSH 连接到工作节点,以执行管理任务。
请注意,以下说明假定您使用 UNIX 机器连接工作节点:
已安装 ssh 工具。
可访问与创建群集时指定的 SSH 公钥配对的 SSH 私钥文件。
如何使用 SSH 连接到工作节点,取决于您在定义群集中的节点池时为工作节点指定的是公共子网还是私有子网。
使用 SSH 连接公共子网中的工作节点
在使用 SSH 连接到公共子网中的工作者节点之前,必须在子网的安全列表中定义一条入口规则,以允许 SSH 访问。输入规则必须允许从源 0.0.0.0/0 和任何源端口访问工人节点上的端口 22:
1- 找出要连接的 Worker 节点的 IP 地址。有多种方法可以做到这一点:
使用 kubectl。如果您还没有这样做,请按照以下步骤设置群集的 kubeconfig 配置文件,并(如有必要)设置 KUBECONFIG 环境变量以指向该文件。请注意,您必须设置自己的 kubeconfig 文件。您不能使用其他用户设置的 kubeconfig 文件访问群集。
请参阅设置群集访问。然后在终端窗口中输入 kubectl get nodes,查看群集节点池中工作节点的公共 IP 地址。
使用控制台。在控制台中,显示 "群集列表 "页面,然后选择工作者节点所属的群集。在 "节点池 "选项卡上,单击工作者节点所属节点池的名称。在 "节点 "选项卡上,您将看到节点池中每个 Worker 节点的公共 IP 地址。
使用 REST API。使用 ListNodePools 操作查看节点池中工作节点的公共 IP 地址。
2- 在终端窗口中输入 ssh opc@ 连接到工作节点,其中 是您之前记下的工作节点的 IP 地址。例如,您可以输入 ssh
[email protected]。
请注意,如果 SSH 私钥未存储在 ssh 实用程序所期望的文件或路径中(例如,ssh 实用程序可能期望私钥存储在 ~/.ssh/id_rsa),则必须通过以下两种方式之一明确指定私钥文件名和位置:
使用 -i 选项指定私钥的文件名和位置。例如,ssh -i
~/.ssh/my_keys/my_host_key_filename
[email protected]将私钥文件名和位置添加到 SSH 配置文件中,可以是客户端配置文件(~/.ssh/config)(如果存在),也可以是系统范围的客户端配置文件(/etc/ssh/ssh_config)。例如,可以添加以下内容:
主机 192.0.2.254 IdentityFile ~/.ssh/my_keys/my_host_key_filename
有关 ssh 工具配置文件的更多信息,请输入 man ssh_config 注意私钥文件的权限必须允许你读/写/执行访问,但要防止其他用户访问该文件。例如,要设置适当的权限,可以输入 chmod 600
~/.ssh/my_keys/my_host_key_filename。如果权限设置不正确,且其他用户可以访问私钥文件,那么 ssh 实用程序将直接忽略该私钥文件。
参考资料
https://docs.cloud.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengconnectingworkernodesusingssh.htm