故障排除 Red Hat OpenShift 问题
使用故障诊断信息来诊断和修复 Red Hat® OpenShift® 的问题。
RHEL 预订
如果您在订阅时遇到问题,请使用以下命令运行查询。
subscription-manager list --available --all
负载均衡器
要检查负载平衡是否正常,请在堡垒节点上使用以下命令。 如果结果是一组完整的报文头,则负载平衡成功。
wget --no-check-certificate https://api.ocp.dallas.ibm.local:6443
Red Hat CoreOS
您无需使用 SSH 连接节点,但如果需要,可以通过 bastion 节点进行连接。 下面的示例使用以下命令连接到引导程序服务器:
ssh core@192.168.133.9
如果收到错误,请尝试使用以下命令来禁用指纹检查:
ssh -o StrictHostKeyChecking=no core@192.168.133.9
本示例演示了如何从堡垒节点连接到控制平面节点,以查看日志并更改权限,使其可读。 目录名称可能不同。
ssh -i /root/.ssh/id_rsa core@192.168.133.12
sudo su
chmod 777 /var/log/pods/b2810e842791d83d48a4684295b7cd01/etcd-member/0.log
此示例显示如何将日志下载到防御主机节点,然后再下载到跳板机或远程设备,以便提高日志可读性并能够解析日志。 目录名称可能不同。
scp -i /root/.ssh/id_rsa core@192.168.133.10:/var/log/pods/b2810e842791d83d48a4684295b7cd01/etcd-member/0.log 0.log
Red Hat OpenShift
获取节点及其状态的列表:
oc get nodes
使用 kubectl 时,首选项会生效,同时决定使用哪个 kubeconfig 文件。
- 如果指定了,请使用
--kubeconfig
标记。 - 如果指定了KUBECONFIG环境变量,请使用该变量。
- 使用
$HOME/.kube/config
文件。
要将由 Red Hat OpenShift 安装程序创建的kubeconfig导出到环境变量,请使用以下命令:
export KUBECONFIG=/opt/ocpinstall/auth/kubeconfig
删除部署
如果您的Terraform部署出现问题,您可以使用以下命令删除部署。
terraform destroy
在某些情况下,您可能在使用 Terraform 完成自动化时遇到问题。 在这些情况下,您可能需要使用 vCenter 并删除 Terraform 状态文件来手动删除部署。
- 删除 vCenter 中的
ocp
文件夹及其内容。 - 删除
ocp
资源组。 - 删除
rm /opt/ocpinstall/installer/upi/vsphere/terraform.tfstate
Terraform 状态文件。
完成这些步骤后,您可以修复部署问题并重新部署 Red Hat OpenShift 平台。
生成新的 Ignition 文件
Ignition 文件的有效期为 24 小时。 可以通过完成以下步骤来生成 .ign
文件:
-
除去旧的状态、配置和
ign
文件:cd /opt/ocpinstall rm -R .openshift_install.log .openshift_install_state.json auth *.ign metadata.json
-
复制 Red Hat OpenShift 的
install-config
备份到yaml:cp install-config.bak install-config.yaml openshift-install create ignition-configs --dir=/opt/ocpinstall/
-
复制 bootstrap.ign 到 nginx 主文件夹。
cp bootstrap.ign /usr/share/nginx/html
-
将
cat master.ign
和cat worker.ign
替换为terraform.tfvars
中的主要部分和工作人员部分。nano /opt/ocpinstall/installer/upi/vsphere/terraform.tfvars
:// Ignition config for the control plane machines. You should copy the contents of the master.ign generated by$ control_plane_ignition = <<END_OF_MASTER_IGNITION <replace with new master.ign> END_OF_MASTER_IGNITION // Ignition config for the compute machines. You should copy the contents of the worker.ign generated by the i$ compute_ignition = <<END_OF_WORKER_IGNITION <replace with new worker.ign> END_OF_WORKER_IGNITION
为 Red Hat OpenShift 拍摄快照
您可能希望在开发或测试期间停止和恢复 Red Hat OpenShift 群集虚拟机。 在拍摄快照之前,您必须考虑以下几点。
在安装 Red Hat OpenShift 4.x 集群时,会创建一个引导证书,用于在控制平面节点上为kubelet客户端证书创建证书签名请求(CSR)(每个节点或kubelet一个)。 此证书用于识别任何节点上的每个 kubelet。 由于引导程序证书无法撤销,因此设置为在集群安装后较短时间内到期(24 小时)。 除控制平面节点外的所有节点都有一个可撤销的服务账户令牌。 引导程序证书仅在集群安装后 24 小时内有效。 在初始 24 小时后,证书将每 30 天到期一次。
第一个控制面 kubelet 持续 24 小时后才会重新创建。 如果您在部署后立即拍摄快照,控制平面 kubelet 还没有 30 天的客户证书。 然后,缺少的kubelet客户端证书刷新窗口导致集群无法使用,因为集群备份时无法使用引导凭证。 实际上,这个过程要求在安装后至少运行25小时,才能关闭 Red Hat OpenShift 4集群。
可以通过部署后在防御主机中运行以下命令来检查证书的有效性:
ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no core@192.168.133.10 -- sudo openssl x509 -text -noout -in /var/lib/kubelet/pki/kubelet-client-current.pem
运行以下命令检查输出证书的有效期。
Warning: Identity file id_rsa_crc not accessible: No such file or directory.
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
6a:73:78:19:f3:1e:8f:0c:a9:51:b8:53:f4:eb:29:8d:49:fa:7e:fd
Signature Algorithm: sha256WithRSAEncryption
Issuer: CN = kube-csr-signer_@1573016574
Validity
Not Before: Nov 6 08:22:00 2019 GMT
Not After : Dec 6 04:57:43 2019 GMT
有关安装后关闭群集的更多信息,请参阅 启用 Red Hat OpenShift 4群集以停止和恢复群集虚拟机。
在最初的24小时证书更新后,集群快照将在未来30天内随时启用。 在 30 天后,证书将失效,导致集群快照不可用。