前言
openshift origin (okd) 目前社区并没有直接支持阿里云部署,需要阿里云上以裸机的方式上传os镜像,然后引导部署。
openshift origin (okd) 从版本4开始安装方式和3.x版本完全不一样了,抛弃了ansible的安装方式,改为使用bootstrap的方式进行引导安装。
本文记录的是在阿里云上以裸机安装的方式自己上传os镜像进行引导。
准备
#由于国内网络情况较差,使用阿里香港区的服务器进行部署。
#需要开通loadbalancer,private zone等服务,当然也可以自己部署loadbalancer和dns。
安装osinstaller
#申请一台香港服务器osinstaller,下面操作在该服务器上操作。
#download openshift okd
wget https://github.com/openshift/okd/releases/download/4.7.0-0.okd-2021-09-19-013247/openshift-install-linux-4.7.0-0.okd-2021-09-19-013247.tar.gz
tar -xvf openshift-install-linux-4.7.0-0.okd-2021-09-19-013247.tar.gz
wget https://mirror.openshift.com/pub/openshift-v4/clients/oc/latest/linux/oc.tar.gz
tar -xvf oc.tar.gz
cp openshift-install /usr/bin/
cp oc /usr/bin/
#pre install
yum -y install qemu-img qemu-kvm libvirt
systemctl start libvirtd
#gen ssh key
cd ~/.ssh
ssh-keygen -t rsa -b 4096 -N '' -f id_rsa
eval "$(ssh-agent -s)"
#create config file
mkdir /root/okd-4.7
cd /root/okd-4.7
vi install-config.yaml
apiVersion: v1
baseDomain: voss.com
compute:
- hyperthreading: Enabled
name: worker
replicas: 1
controlPlane:
hyperthreading: Enabled
name: master
replicas: 3
metadata:
name: voss
networking:
clusterNetworks:
- cidr: 10.254.0.0/16
hostPrefix: 24
networkType: OpenShiftSDN
serviceNetwork:
- 172.30.0.0/16
platform:
none: {}
pullSecret: '{"auths":{"fake":{"auth": "Zm9vOmJhcgo="}}}'
sshKey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQClR5pn3wv1Uf+OXbqz2vNu6PhfPhOBzYgRBpTfFoQYMrQpyQd50A30N6HSHx/rOv58ZaeYnd74zpbOVaLJIvozg83x49aNU2WnMQzuzXd5TCnbO/EEbIe2zxByCiiJLPtcBIK9xa50Xux3gEnqTWeeuO+v30xl7g7Tj6WWsbPyIdKbEEDPzuB5T+tFYAfCkKSbcfdA/0UJr/tsi5yNzhGasiNm5lOHVhOVenIAVVLyKVh5hkUwU/gUuWMIUkCV4j7k5QFk+yUGAo8IGh1bcZXMg9/xuVnq95E+p+fD0rkWJNuoUtK0uIeIbW7b2E2TzdD8100gyCFqdyWSSIpWGSbIyZW22MtjJcOTDk01w9z9b4NHIoj7qsmcTigO2xlsppoq0KNkDXSfZr9zPvJFB61IdrF8UOFXMu+kbT1uTuCaS8ewUQynUrx5kEps26W+tTMwW+vSMCUNZBWtraKuvgx/bpc0LqbrGMT6j3t0SUv73hlVNj+ebGSmC8JWecvsX1+zrEel1S2HFOeiZoBZWW08IFByv9GSLnU+hNNLtGSINMnqpAuD7rLH+8Wxv/nAXlGfe19LZZgyWFJM77eEqGCVLqtH13wNBLjd2CiwkpCuVbNprdnxQNMzH7BS5N/t2sYXtHz2nYv6N5Yt51K4Ve/Cv0PvCvDl7b86EIKh9kP9Qw== root@osinstaller.cnbr.hatech.com'
#make manifests and ignition
openshift-install create manifests --dir=/root/okd-4.7
openshift-install create ignition-configs --dir=/root/okd-4.7
#config nginx server
yum install -y nginx
systemctl enable nginx --now
cp /root/okd-4.7/*.ign /usr/share/nginx/html/
chmod a+rx /usr/share/nginx/html/*.ign
制作引导镜像
#下面操作在本地机器进行
#安装 virtualBox,并从fedora-coreos官网下载裸机iso镜像,进行引导。
#如:fedora-coreos-34.20210904.3.0-live.x86_64
#虚拟硬盘格式选择 VHD。
#共安装三台,产出三个镜像,分别为:bootstrap,master,worker。
#安装主要分为两个步骤:
#进入fedora-coreos系统,安装基本镜像,三台步骤一致
#make bootstrap image
curl -SLO http://xxx.xxx.xxx.xxx/bootstrap.ign
sudo coreos-installer install /dev/sda --ignition-file=/var/home/core/bootstrap.ign
shutdown -h now
#make master iso
curl -SLO http://xxx.xxx.xxx.xxx/master.ign
sudo coreos-installer install /dev/sda --ignition-file=/var/home/core/master.ign
shutdown -h now
#make worker iso
curl -SLO http://xxx.xxx.xxx.xxx/worker.ign
sudo coreos-installer install /dev/sda --ignition-file=/var/home/core/worker.ign
shutdown -h now
导入阿里云镜像
#首先将上面生成的三台虚拟机vhd上传到阿里云OSS bitbucket用来制作自定义镜像
#填入oss地址,制作bootstrap,master,worker自定义镜像
部署bootstrap
#申请一台香港服务器,操作系统选择自定义的os 镜像bootstrap
#启动后通过osinstaller ssh到bootstrap机器上,利用生成的private key id_rsa
#修改hostname
sudo hostnamectl set-hostname bootstrap.voss.voss.com
#之后bootstrap会自动重启,重启后会下载相应的组件,安装bootstrap
部署master
#申请三台香港服务器,操作系统选择自定义的os 镜像master
#master启动后,通过ssh连接进去,修改hostname
sudo hostnamectl set-hostname master0.voss.voss.com
sudo hostnamectl set-hostname master1.voss.voss.com
sudo hostnamectl set-hostname master2.voss.voss.com
部署worker
#申请一台香港服务器,操作系统选择自定义的os 镜像worker
配置loadbalancer
#设置Loadbalancer
#开通slb,添加如下监听
#虚拟机服务器中将上面部署的bootstrap,master,worker五台机器加入到默认服务器组中。
配置dns
#设置dns,申请开通云解析dns,配置private zone
#关联上面使用到的vpc,添加如下记录,请使用实际ip地址
主机记录 记录值
_etcd-server-ssl._tcp.voss 0 10 2380 etcd-2.voss.voss.com
_etcd-server-ssl._tcp.voss 0 10 2380 etcd-1.voss.voss.com
etcd-2.voss 172.22.127.15
etcd-1.voss 172.22.127.14
master2.voss 172.22.127.15
master1.voss 172.22.127.14
_etcd-server-ssl._tcp.voss 0 10 2380 etcd-0.voss.voss.com
api.voss 172.22.126.233
bootstrap.voss 172.22.127.12
worker1.voss 172.22.126.247
worker0.voss 172.22.127.16
master0.voss 172.22.127.13
api-int.voss 172.22.126.233
*.apps.voss 172.22.126.233
etcd-0.voss 172.22.127.13
安装openshift
#在osinstaller上执行如下命令进行安装:
openshift-install --dir=/root/okd-4.7 wait-for bootstrap-complete --log-level=debug
#安装过程中可以通过在osinstaller上执行oc获取节点状况
export KUBECONFIG=/root/okd-4.7/auth/kubeconfig
oc get node
#在bootstrap节点观察日志
journalctl -b -f -u bootkube.service
#node节点安装完成后,不会立即上线,需要手工同意其csr证书
#查看pending状态证书
oc get csr
oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
#同意申请
#等几秒,以上审批证书步骤会有两次
#视网速实际情况,大概需要30分钟左右