如何在OpenShift节点上打开Shell提示符
时间:2020-02-23 14:31:37 来源:igfitidea点击:
从OpenShift Container Platform 4.0开始的OpenShift工作节点和主节点用户将Red Hat CoreOS(RHCOS)作为基本操作系统。对于OKD,这将是Fedora CoreOS(FCOS)。不建议直接SSH到OpenShift节点,不要忘记默认情况下仅SSH密钥可用于访问。此SSH密钥是在部署OpenShift/OKD容器平台时提供的密钥。那么,如何访问OpenShift节点的Shell提示符。
在OpenShift节点上打开Shell提示符
OpenShift提供了一个oc客户端,可用于访问OpenShift节点的Shell提示符。
一旦OpenShift群集启动并运行,就可以使用以下命令安装oc客户端:
--- Linux -- wget https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz tar xvf oc.tar.gz chmod +x oc sudo mv oc /usr/local/bin --- macOS -- wget https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/macosx/oc.tar.gz tar xvf oc.tar.gz chmod +x oc sudo mv oc /usr/local/bin
通过检查版本来确认安装:
$oc version Client Version: 4.5.0-201703270516-ad76834 Kubernetes Version: v1.17.4
访问OpenShift节点shell
我们将使用" oc debug node"命令在集群的任何节点中打开shell提示符。语法为:
$oc debug node/<node-name>
但首先列出群集节点:
$oc get nodes NAME STATUS ROLES AGE VERSION mas01.ocp.theitroad.local Ready master 10d v1.16.2 mas02.ocp.theitroad.local Ready master 10d v1.16.2 mas03.ocp.theitroad.local Ready master 10d v1.16.2 infra03.ocp.theitroad.local Ready infra,worker 10d v1.16.2 infra03.ocp.theitroad.local Ready infra,worker 10d v1.16.2 node01.ocp.theitroad.local Ready worker 10d v1.16.2 node02.ocp.theitroad.local Ready worker 10d v1.16.2 node03.ocp.theitroad.local Ready worker 10d v1.16.2 ocs01.ocp.theitroad.local Ready worker 10d v1.16.2 ocs02.ocp.theitroad.local Ready worker 10d v1.16.2 ocs03.ocp.theitroad.local Ready worker 10d v1.16.2
假设我们要启动到ocs01.ocp.theitroad.local节点的Shell会话,请运行:
$oc debug node/node01.ocp.theitroad.local Starting pod/node01ocptheitroadcom-debug ... To use host binaries, run `chroot /host`
该提示来自安装节点根文件系统的专用工具容器
在/host文件夹中,并允许我们检查节点中的所有文件。
如命令输出所示,我们需要在/host文件夹中启动chroot shell。这将使我们能够在Shell中使用主机二进制文件。
chroot /host
我们将看到如下输出:
chroot /host Pod IP: 10.184.48.235 If you don't see a command prompt, try pressing enter. sh-4.2# chroot /host sh-4.4#
尝试运行命令例如检查操作系统版本:
sh-4.4# cat /etc/redhat-release Red Hat Enterprise Linux CoreOS release 4.3 sh-4.4# nmcli con show NAME UUID TYPE DEVICE Wired connection 1 dcd75b54-c1d9-39b7-b7e9-6996a182b53a ethernet ens192
oc debug shell会话使用相同的隧道技术,该技术允许在正在运行的pod oc rsh中打开shell提示。