OpenShift登录失败(401未经授权)

时间:2020-08-27 10:20:39

标签: openshift kubectl openshift-origin openshift-3 okd

我是openshift或K8'S的新手。我已经在centos 7中安装了Openshift v3.11.0 + bf985b1-463 集群。 运行prerequisites.yml和deploy_cluster.yml时,运行状态为成功。而且我已经更新了htpasswd并为我的用户授予了cluster-admin角色。

htpasswd -b ${HTPASSWD_PATH}/htpasswd $OKD_USERNAME ${OKD_PASSWORD}
oc adm policy add-cluster-role-to-user cluster-admin $OKD_USERNAME

并且我还通过以下cmd创建了用户和身份。

oc create user bob
oc create identity ldap_provider:bob
oc create useridentitymapping ldap_provider:bob bob

当我尝试使用oc login -u bob -p password登录时,提示是

登录失败(401未经授权) 确认您提供了正确的凭据。

但是我可以使用oc login -u system:admin

登录

供您参考:okd deploy_cluster.yml成功运行,但是下面的窗格处于错误状态。 那是问题所在吗? cmd oc get pods

enter image description here

建议我如何解决此问题。谢谢。

更新: 我已经再次运行deploy_cluster.yml,登录问题已解决,可以登录。但是失败,并显示以下错误。

This phase can be restarted by running: playbooks/openshift-logging/config.yml
Node logging-es-data-master-ioblern6 in cluster logging-es was unable to rollout. Please see documentation regarding recovering during a rolling cluster restart

在openshift控制台中,Logging Pod发生以下事件。 enter image description here

但是所有服务器都有足够的内存,例如超过65%的可用内存。 而 Ansible版本是2.6.5

1个主节点配置: 4CPU,16GB RAM,50GB HDD

2个从站和1个基础节点配置: 4CPU,16GB RAM,20GB HDD

1 个答案:

答案 0 :(得分:1)

要创建新用户,请尝试执行以下步骤:

1在每个主节点上创建 ,方法是在htpasswd文件中输入密码:

$ htpasswd -b <用户名>

$ htpasswd -b /etc/origin/master/htpasswd myUser myPassword

2在每个主节点上重新 主api和主控制器

$ master-restart controllers && master-restart api
or
$ /usr/local/bin/master-restart api && /usr/local/bin/master-restart controllers

3申请所需的角色

$ oc adm policy add-cluster-role-to-user cluster-admin myUser

4以myUser身份登录

$ oc login -u myUser -p myPassword 

在配置htpasswd文件后再次运行deploy_cluster.yaml,将强制重新启动主控制器和api,因此您已经能够以新用户身份登录。

关于另一个问题,注册表控制台和loggin-es-data-master主机未运行,这是因为在群集已经启动并运行时无法再次运行deploy_cluster.yaml,因此您必须卸载okd然后再次运行剧本。发生这种情况是因为SDN已经在运行,并且您的所有节点已经拥有所有必需的证书。

$ ansible-playbook -i path/to/inventory /usr/share/ansible/openshift-ansible/playbooks/adhoc/uninstall.yml

然后再次

$ ansible-playbook -i path/to/inventory /usr/share/ansible/openshift-ansible/playbooks/deploy_cluster.yml

更详细的信息是here

如果在完成所有此步骤之后,logging-es-data-master容器不应该运行,请使用以下方式卸载日志记录组件

$ ansible-playbook -i /path/to/inventory> /usr/share/ansible/openshift-ansible/playbooks/openshift-logging/config.yml -e openshift_logging_install_logging=False -e openshift_logging_purge_logging=true

,然后卸载整个okd,然后重新安装。

如果您的集群已经在工作,并且您无法再次执行安装,那么请尝试仅卸载并重新安装日志记录组件:

$ ansible-playbook -i /path/to/inventory> /usr/share/ansible/openshift-ansible/playbooks/openshift-logging/config.yml -e openshift_logging_install_logging=False -e openshift_logging_purge_logging=true
$ ansible-playbook -i /path/to/inventory> /usr/share/ansible/openshift-ansible/playbooks/openshift-logging/config.yml -e openshift_logging_install_logging=True

RH详细的指示信息是here