本文介绍安装后更新OpenShift 4.x群集SSH密钥(SSH Keys)的方法,适用于Linux服务器上。内容有:更新OpenShift主节点SSH密钥、更新OpenShift Worker/Infra节点SSH密钥。
前言 在大多数情况下,您将不需要通过SSH访问您的OpenShift群集节点即可执行常规管理任务,因为OpenShift 4提供了可用于Shell访问的oc debug命令。如果您仍然希望对第2天的操作进行SSH访问群集节点,则必须使用部署期间使用的SSH密钥。对于丢失的专用和公用SSH密钥对,如果您具有权限oc管理,则可以在安装后更新OpenShift 4.x群集SSH密钥。 如果安装的OpenShift群集没有ssh密钥,则这也适用于安装后ssh密钥的配置。我们将看到您如何更新master的ssh密钥,OpenShift 4.x集群中的基础和辅助计算机。群集中SSH密钥的更新是通过在群集上修改(或创建)适当的MachineConfig对象来执行的。 OpenShift 4是一个以操作员为中心的平台,Machine Config操作员将其扩展到操作系统本身,从而管理更新和配置更改,实质上是内核和kubelet之间的所有内容。默认情况下,RHCOS包含一个名为core的用户(从CoreOS Container Linux衍生而来),并在安装时指定了可选的SSH密钥。 相关参考:使用Minishift运行本地Openshift集群的方法。
群集设置后更新OpenShift 4.x SSH密钥的说明 默认情况下,有两个MachineConfig对象处理SSH密钥的管理: 1、99-worker-ssh –用于工作节点。 2、99-master-ssh –对于集群中的主节点。 如果在群集安装时指定了SSH密钥,则会将它们传播到上述MachineConfig对象。
更新OpenShift主节点SSH密钥(SSH Keys) 如果较早的群集安装是使用SSH密钥完成的,请为主节点下载当前的SSH MachineConfig对象: $ oc get mc 99-master-ssh -o yaml > 99-master-ssh.yml 这应该在具有管理员级别群集访问权限的堡垒服务器上完成。 下载文件后,请按所需的键进行编辑。对于没有SSH密钥创建的集群,请创建一个新文件99-master-ssh.yml:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: master name: 99-master-ssh spec: config: ignition: config: {} security: tls: {} timeouts: {} version: 2.2.0 networkd: {} passwd: users: - name: core sshAuthorizedKeys: - ssh-rsa XXXXXXX..... - ssh-rsa YYYYYYY..... storage: {} systemd: {} fips: false kernelArguments: null osImageURL: "" 重要说明: 1、sshAuthorizedKeys数组包含所有有效的SSH公共密钥。每个元素上的每个SSH密钥。您必须小心使用YAML语法才能拥有有效的配置文件。 2、user:name字段不应更新,因为core是我们配置中当前支持的唯一用户。 3、更新MachineConfig对象可能会耗尽所有节点并重新启动所有节点(根据MachineConfigPool上的maxUnavailable设置)。确定这在您的基础架构中是否还可以。 要更新MachineConfig对象,请运行以下命令: $ oc apply -f 99-master-ssh.yml
更新OpenShift Worker/Infra节点SSH密钥(SSH Keys) 相同的过程适用于工作程序节点MachineConfigPool。下载或创建worker ssh配置: $ oc get mc 99-worker-ssh -o yaml > 99-worker-ssh.yml 该配置与以前的更新类似:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 99-worker-ssh spec: config: ignition: config: {} security: tls: {} timeouts: {} version: 2.2.0 networkd: {} passwd: users: - name: core sshAuthorizedKeys: - ssh-rsa XXXXXXX..... - ssh-rsa YYYYYYY..... storage: {} systemd: {} fips: false kernelArguments: null osImageURL: "" 更改完成后,应用文件: $ oc apply -f 99-worker-ssh.yml OpenShift Machine Config Operator应该很快开始应用更改。您可以运行以下命令来查看要更新的MachineConfigPools: oc get mcp 您还可以使用以下命令来了解如何在单个节点中应用更改: export NODE="master-01.example.com" oc -n openshift-machine-config-operator logs -c machine-config-daemon $(oc -n openshift-machine-config-operator get pod -l k8s-app=machine-config-daemon --field-selector spec.nodeName=${NODE} -o name) -f 将master-01.example.com替换为要检查的节点名称。
相关主题 |