IBM Cloud Pak for Business Automation安装之部署OpenShift

admin 2025-01-10 253人围观 ,发现69个评论
简介

本文以离线方式安装IBMCloudPakforBusinessAutomation所需的OpenShift环境。

系统需求

请参考下面官方链接获得详细信息。

每个OCP集群必须满足如下最小需求。

Machine

OS

CPU

Memory

DiskSpace

Bootstrap

CoreOS

4

16GB

120GB

Master

CoreOS

4

16GB

120GB

Compute

CoreOSorRHEL

2

8GB

120GB

最小OCP集群需包含下面的机器:

l一台Bootstrap机器,安装OCP完成后可以删除

l三台master(orcontrolplane)机器

l至少一台compute(worker)机器

lBastion机器(俗称堡垒机)。为了离线安装,它必须能访问外网把所需的镜像从下载到本地镜像服务器。

机器列表

在OCP安装过从中我们使用了如下的机器。

IPAddress

Hostname

OS

Note

182.18.18.65

bastion

堡垒机(访问外网,访问Master/Worker,部署HAProxy,部署本地镜像服务器)

182.18.18.66

bootstrap

182.18.18.67

master01

182.18.18.68

master02

182.18.18.69

master03

182.18.18.70

worker01

182.18.18.71

worker02

182.18.18.72

worker03

182.18.18.73

worker04

182.18.18.74

worker05

182.18.18.75

worker06

182.18.18.76

worker07

182.18.18.77

worker08

离线安装准备

参考下面官方链接获得详细信息。

也可以参考下面官方链接获得如何从私有离线镜像服务器安装OCP的详细信息。

下载命令行工具

从;下面使用的OCP版本是4.8.14。

把OCP命令行工具下载到堡垒机的任意路径(如/root/temp),解压并把oc和kubectl文件移动至/usr/bin.

wget

mvkubectl/usr/bin

mvoc/usr/bin

使用下面命令确认oc命令已正确安装。

ocversion

创建镜像服务器

安装所需的软件包。

yuminstallpodmanhttpd-tools-y

如果在安装过程中提示找不到podman,如下所示:

已加载插件:langpacks,product-id,search-disabled-repos,subscription-manager

没有可用软件包podman。

错误:无须任何处理

执行下面命令。

sudosubscription-managerrepos--enable=rhel-7-server-extras-rpms

sudoyum-yinstallpodman

建立镜像服务器目录。

mkdir-p/home/registry/{auth,certs,data}

为镜像服务器建立证书,如果没有权威机构颁发的证书,可以创建一个自签名的证书。

cd/home/registry/certs

opensslreq-newkeyrsa:4096-

根据提示输入下面的必要信息。

CountryName(2lettercode)

StateorProvinceName(fullname)

Enterthefullnameofyourstateorprovince

LocalityName(eg,city)

Enterthenameofyourcity.

OrganizationName(eg,company)

Enteryourcompanyname.

OrganizationalUnitName(eg,section)

Enteryourdepartmentname.

CommonName(eg,yournameoryourserver’shostname)

dress.

EmailAddress

,seethereqdescriptionintheOpenSSLdocumentation.


生成访问镜像服务器的用户名和密码(比如admin/passw0rd)

htpasswd-bBc/home/registry/auth/htpasswdadminpassw0rd

如果堡垒机上防火墙是打开状态,确保5000端口可以从外面访问。

firewall-cmd--add-port=5000/tcp--zone=internal--permanent

firewall-cmd--add-port=5000/tcp--zone=public--permanent

firewall-cmd--reload

firewall-cmd--add-port=5002/tcp--zone=internal--permanent

firewall-cmd--add-port=5002/tcp--zone=public--permanent

创建镜像服务器的容器。

podmanrun--nameocp4-registry-d-p5000:5000\

-v/home/registry/data:/var/lib/registry:z\

-v/home/registry/auth:/auth:z\

-e"REGISTRY_AUTH=htpasswd"\

-e"REGISTRY_AUTH_HTPASSWD_REALM=RegistryRealm"\

-eREGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd\

-v/home/registry/certs:/certs:z\

-eREGISTRY_HTTP_TLS_CERTIFICATE=/certs/\

-eREGISTRY_HTTP_TLS_KEY=/certs/\

/library/registry:2

注意:如果遇到dockerpull对匿名用户的限制,您可能需要登录/library并将该注册表映像拉到bastion,然后创建注册表。

/library

/library/registry:2

使用此命令来验证它是否有效。这里是镜像服务器的主机,配置在DNS上。

curl-uadmin:passw0rd-k

使用下面命令来起/停镜像服务器。

podmanstartocp4-registry

podmanstopocp4-registry

将自签名证书添加到您的受信任证书列表中

cp/home/registry/certs//etc/pki/ca-trust/source/anchors/

update-ca-trust

为镜像服务器创建PullSecret

使用下面命令生成pullsecret


生成的pullsecret_如下所示:


镜像OpenShiftContainerPlatform镜像存储库

把它保存到/home/registry/编辑它,在它的最后加上本地镜像服务器的pullsecret.

创建一个的脚步,内容如下:


lOCP_RELEASE:设置为发布版本,如4.8.14-x86_64,具体版本可以在。

lLOCAL_REGISTRY:本地镜像服务器的host:port

lLOCAL_REPOSITORY:本地存储库的名字,设置为ocp4/openshift4

lPRODUCT_REPO:必须为openshift-release-dev

lLOCAL_SECRET_JSON:之前下载并编辑过的的完整路径

lGODEBUG=x509ignoreCN=0:支持使用未设置SubjectAlternativeName的自签名证书,必须在oc命令之前使用此设置

运行以下命令来镜像注册表。

chmod+

../

ocadm-a${LOCAL_SECRET_JSON}releasemirror\

--from=/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}\

--to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}\

--to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}

上述命令运行之后等一会,需要重启POD再运行ocadm。

如果遇到网络超时或连接重置错误,重新运行上面的ocadm脚本直到成功,如下图所示。


命令完成后,记下imageContentSources部分。以后会用到。

堡垒机准备

可以参考如下官方链接获得详细信息:

OpenShift4需要一些支持服务:DNS服务器、负载均衡器。我们将在此VM上安装负载均衡器,因为DNS服务器部署在单独的服务器中。此VM也将是登录OCP集群的客户端。

我们使用虚拟机。IP地址为182.18.19.52。主机名为。

防火墙设置

防火墙默认是打开的,可以运行下面命令关闭它。

如果防火墙不能被禁用,添加如下防火墙规则。

l22623/tcp:OCPmachineconfigserver

l6443/tcp:OCPAPIserver

l80/tcp:OCPingresshttp

l443/tcp:OCPingresshttps

l9000/tcp:HAProxyhealthreport

例如,使用以下命令修改firewalld设置以允许DNS,APIServer,Ingress,HAProxy。

firewall-cmd--add-port=22623/tcp--zone=internal--permanent

firewall-cmd--add-port=22623/tcp--zone=public--permanent

firewall-cmd--add-port=6443/tcp--zone=internal--permanent

firewall-cmd--add-port=6443/tcp--zone=public--permanent

firewall-cmd--add-port=80/tcp--zone=internal--permanent

firewall-cmd--add-port=80/tcp--zone=public--permanent

firewall-cmd--add-port=443/tcp--zone=internal--permanent

firewall-cmd--add-port=443/tcp--zone=public--permanent

firewall-cmd--add-port=9000/tcp--zone=internal--permanent

firewall-cmd--add-port=9000/tcp--zone=public--permanent

firewall-cmd--reload

安装负载均衡

可以参考

我们使用HAProxy作为辅助均衡。

yum-yinstallhaproxy

覆盖/etc/haproxy/,使用以下内容。

turnonstatsunixsocket

statssocket/var/lib/haproxy/stats

defaults

modehttp

logglobal

optionhttplog

optiondontlognull

optionhttp-server-close

---------------------------------------------------------------------

listenstats

bind:9000

modehttp

statsenable

statsuri/

monitor-uri/healthz

frontopenshift-api-server

bind*:6443

default_backopenshift-api-server

modetcp

optiontcplog

backopenshift-api-server

balancesource

modetcp

:6443check

:6443check

:6443check

:6443check

frontmachine-config-server

bind*:22623

default_backmachine-config-server

modetcp

optiontcplog

backmachine-config-server

balancesource

modetcp

:22623check

:22623check

:22623check

:22623check

frontingress-http

bind*:80

default_backingress-http

modetcp

optiontcplog

backingress-http

balancesource

modetcp

:80check

:80check

:80check

:80check

:80check

:80check

:80check

:80check

frontingress-https

bind*:443

default_backingress-https

modetcp

optiontcplog

backingress-https

balancesource

modetcp

:443check

:443check

:443check

:443check

:443check

:443check

:443check

:443check

!/bin/bash

sudocoreos-installerinstall--copy-network--ignition-file=/var/home/core//dev/sda

!/bin/bash

sudocoreos-installerinstall--copy-network--ignition-file=/var/home/core//dev/sda

如果有人需要,后续内容继续连载。

猜你喜欢
    不容错过