NSX ALB + Harbor + OpenShift 4.8 UPI安装配置实验笔记系列目录
目录
5.2 将本地Registry的登录信息加入pull-secret.json
5.6.2 本地Registry不能上外网(或国内下载很慢)
1 Operator节点安装CentOS7
使用CentOS7 ISO安装Operator虚机。(略)
2 关闭CentOS防火墙和SELinux
2.1 关闭OS防火墙
systemctl stop firewalld
systemctl disable firewalld
2.2 关闭SELinux并重启主机
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
reboot
3 安装所需的基础软件包
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install wget git net-tools bridge-utils bash-completion kexec-tools tmux screen jq tree httpd-tools ca-certificates httpd unzip
4 下载OCP所需软件
OCP 文档和软件下载在 openshift.com 和 redhat.com 各有一套,但是红帽网站的下载速度、内容更新、文档格式(支持 PDF)均优于 openshift.com,因此建议主要使用前者,不过有些内容需要红帽账号。
本文为了操作方便,直接使用了mirror.openshift.com为软件源。
4.1 查看OCP 4.8最新版本号
export OCP_RELEASE=$(curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/stable-4.8/release.txt | grep 'Name:' | awk '{print $NF}')
echo ${OCP_RELEASE}
4.2 创建离线包对应存放目录
export OCP_PATH=/data/OCP-${OCP_RELEASE}/ocp
mkdir -p ${OCP_PATH}/{ocp-client,ocp-image,ocp-installer,rhcos,secret}
4.3 下载OCP对应版本的客户端并安装
wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${OCP_RELEASE}/openshift-client-linux-${OCP_RELEASE}.tar.gz -P ${OCP_PATH}/ocp-client
tar -xzf ${OCP_PATH}/ocp-client/openshift-client-linux-${OCP_RELEASE}.tar.gz -C /usr/local/sbin/
4.4 OC命令补全
yum install bash-completion
oc completion bash > ~/.kube/completion.bash.inc
source '/root/.kube/completion.bash.inc'
echo "source '/root/.kube/completion.bash.inc'" >> /root/.bash_profile
4.5 下载并安装openshift-install
wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/${OCP_RELEASE}/openshift-install-linux-${OCP_RELEASE}.tar.gz -P ${OCP_PATH}/ocp-installer
ll -h ${OCP_PATH}/ocp-installer
注:openshift-install命令也可以后面下载了ocp Images后通过本地Image解压,后面会同样提到。
4.6 下载butane命令
curl https://mirror.openshift.com/pub/openshift-v4/clients/butane/latest/butane --output butane
chmod a+x butane && mv butane /usr/sbin
4.7 下载RHCOS ISO
4.7.1 获取RHCOS版本号
RHCOS_RELEASE=$(curl -s https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.8/latest/sha256sum.txt | grep rhcos | awk -F - '{print $2}' | head -1)
echo ${RHCOS_RELEASE}
4.7.2 查看不同平台的RHCOS文件列表
curl -s https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.8/latest/sha256sum.txt | awk '{print $2}' | grep rhcos
4.7.3 下载RHCOS镜像
1). 下载RHCOS镜像
wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.8/${RHCOS_RELEASE}/rhcos-${RHCOS_RELEASE}-x86_64-live.x86_64.iso -P ${OCP_PATH}/rhcos
wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.8/${RHCOS_RELEASE}/rhcos-${RHCOS_RELEASE}-x86_64-metal.x86_64.raw.gz -P ${OCP_PATH}/rhcos
注:OCP 4.6及之前的版本Bare Metal方式安装时似乎需要使用metal.raw.gz包,经验证OCP4.8可以直接通过ISO安装。
2). 将下载下来的RHCOS ISO文件上传至vCenter内的Storage(略)
5 下载OCP核心Image并上传至本地Registry
5.1 获取下载Images的密钥
Pull Secret下载地址:console.redhat.com
打开以上网页,登录自己注册的帐号,然后下载或是点击“Copy pull secret”。
返回Operator SSH界面,将copy下来的密钥存入一个文本文件,然后由此文件转换成一个密钥json文件:
export LOCAL_SECRET_JSON=${OCP_PATH}/secret/pull-secret.json
cat /root/pull-secret.txt | jq . > ${LOCAL_SECRET_JSON}
5.2 将本地Registry的登录信息加入pull-secret.json
用echo命令将本地Registry的帐号和密码生成Base64码:
echo -n 'admin:VMware1!' | base64 -w0
将以上命令输出的结果按右侧红字的样式加入pull-secret.json:
vi ${LOCAL_SECRET_JSON}
按下图方式加入本地Registry的域名及生成的Base 64码,并注意符号的完整及正确性。
{
"auths": {
"map.corp.tanzu": {
"auth": "YWRtaW46Vk13YXJlMSE=",
"email": ""
},
"registry.redhat.io": {
"auth": "fHVo........==",
"email": "youmail@163.com"
}
}
}
5.3 在本地Harbor中创建项目“openshift”
登录Harbor,创建公开项目“openshift”:
5.4 将本地Registry的自签证书配置为信任
将本地Harbor 的自签名的CA证书Copy至/etc/pki/ca-trust/source/anchors目录,并更新系统受信任的CA列表。
cp /etc/docker/certs.d/map.corp.tanzu/ca.crt /etc/pki/ca-trust/source/anchors/map-harbor.crt
updata-ca-trust
5.5 声明临时环境变量
因OpenShift会有版本更新情况,当非连续性操作时,可在此使用实际我们上面Download下来的RELEASE版本号更从新声明变量:
export OCP_RELEASE=4.8.36
export LOCAL_REGISTRY='map.corp.tanzu'
export LOCAL_REPOSITORY='openshift/ocp4.8.36'
export PRODUCT_REPO='openshift-release-dev'
export RELEASE_NAME='ocp-release'
export ARCHITECTURE='x86_64'
export OCP_PATH=/data/OCP-${OCP_RELEASE}/ocp
export LOCAL_SECRET_JSON=${OCP_PATH}/secret/pull-secret.json
export REMOVABLE_MEDIA_PATH=${OCP_PATH}/ocp-image
5.6 同步OCP核心Images至本地Registry
验证镜像信息:
oc adm release info "quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-x86_64"
会获得如下图信息:
5.6.1 如果本地Registry能上外网
直接在Operator主机上使用以下命令将对应版本的核心Images同步至本地Registry:
oc adm release mirror -a ${LOCAL_SECRET_JSON} --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-${ARCHITECTURE} --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} --to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}-${ARCHITECTURE}
出现下图,则为同步成功。
5.6.2 本地Registry不能上外网(或国内下载很慢)
5.6.2.1 先将对应版本核心Images同步到本地磁盘
oc adm release mirror -a ${LOCAL_SECRET_JSON} --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE}-x86_64 --to-dir=${OCP_PATH}/ocp-image/mirror_${OCP_RELEASE}
5.6.2.2 检查下载下来的Images的有效性,并打包留存
1). 检查镜像有效性:
oc adm release info --dir=${OCP_PATH}/ocp-image/mirror_${OCP_RELEASE} file://openshift/release:${OCP_RELEASE}
2). 打包镜像,以便后用
tar -zcvf ${OCP_PATH}/ocp-image/ocp-image-${OCP_RELEASE}.tar -C ${OCP_PATH}/ocp-image ./mirror_${OCP_RELEASE}
3). 删除镜像包
rm -rf ${OCP_PATH}/ocp-image/mirror_${OCP_RELEASE}
5.6.2.3 解压核心Images包,并同步至本地Registry
1). 解压Images压缩包
tar -xvf ${OCP_PATH}/ocp-image/ocp-image-${OCP_RELEASE}.tar -C ${OCP_PATH}/ocp-image/
2). 删除Images压缩包
rm -f ${OCP_PATH}/ocp-image/ocp-image-${OCP_RELEASE}.tar
3). 同步至本地Registry
oc image mirror -a ${LOCAL_SECRET_JSON} --from-dir=${OCP_PATH}/ocp-image/mirror_${OCP_RELEASE} "file://openshift/release:${OCP_RELEASE}*" ${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}