前几天Openshift更新到了4.10, 红帽官方提供了阿里云下的搭建教程,跟着官方的教程实操了一遍,使用的是[快速安装集群方式], 刚做完顺手记录下来。



提前在阿里云中[香港地域]创建一台[堡垒机],堡垒机的用途主要是通过命令行部署openshift和后期运维用途。 ( 我这里用的是 2核、4G内存、40G磁盘、CentOS7.9、有公网IP的虚拟机,注意是香港地域,为啥不是国内的,你懂的)
登陆到阿里云,在AccessKey中,创建密钥。(这使用的是个人账号玩玩,没有和官网一样创建子RAM用户)

密钥创建好后,将信息存放到[堡垒机]的~/.alibabacloud/credentials文件中。(后续openshift会使用PHP,调用阿里云API接口,在阿里云上创建各种资源)
[default]
type = access_key
access_key_id = 你的Key
access_key_secret = 你的secret

它是有 ccoctl 命令工具实现, 这家伙用途就是集群外部创建和管理云凭证。
做之前,我们需要先去红帽这里拿两个压缩包 和 pull-secret 文件
openshift-install-linux.tar.gz [OpenShift 安装程序]
.pull-secret [密钥,我这里文件名是.pull-secret]
openshift-client-linux.tar.gz [命令行工具]
把两个文件给解压了,放到 /usr/bin 目录下
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# tar -zxvf openshift-client-linux.tar.gz
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# tar -zxvf openshift-install-linux.tar.gz
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# mv oc kubectl openshift-install /usr/bin/


接着,继续开始获得 ccoctl命令工具
获取 OpenShift Container Platform 发布镜像
$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
从 OpenShift Container Platform 发布镜像中获取 CCO 容器镜像:
$ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE)
ccoctl从 OpenShift Container Platform 发布镜像中的 CCO 容器镜像中提取二进制文件
$ oc image extract $CCO_IMAGE --file="/usr/bin/ccoctl" -a ~/.pull-secret
更改权限以使其ccoctl可执行,(一般习惯把二进制命令扔到/usr/bin目录下 )
chmod 775 ccoctl
mv ccoctl /usr/bin/
要验证是否ccoctl可以使用,请显示帮助文件
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# ccoctl --help
OpenShift credentials provisioning tool
Usage:
ccoctl [command]
Available Commands:
alibabacloud Manage credentials objects for alibaba cloud
aws Manage credentials objects for AWS cloud
completion generate the autocompletion script for the specified shell
gcp Manage credentials objects for Google cloud
help Help about any command
ibmcloud Manage credentials objects for IBM Cloud
Flags:
-h, --help help for ccoctl
Use "ccoctl [command] --help" for more information about a command.
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# ssh-keygen
回车几次,会在~/.ssh目录下生成[id_rsa]和[id_rsa.pub]文件
阿里云默认提供的是root用户,在root目录下创建个目录installation_directory
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# mkdir -p /root/installation_directory
创建install-config.yaml文件
执行创建命令
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# openshift-install create install-config --dir installation_directory
执行命令后,会出现一个引导界面,通过键盘方向键移动,回车键确认,下图是选择之前创建的密钥对

下图选择的是云供应商,咱们用阿里云的,回车就行

下图选择地域,咱用的香港,选择香港 [cn-hongkong]

下面选择域名,我阿里云账号下有两个域名,第一域名比较敏感上个码。这里选择[i2docker.site]域名 ,此处显示域名就是因为之前配置了 [~/.alibabacloud/credentials]文件。

下图设置集群名称,随意取,但是不能使用过的。例如这里输入 tanker, 它后续会使用 tanker.i2docker.site , *.tanker.i2docker.site 等一系列域名。

下图 输入密钥,就是 cat .pull-secret 一长串的内容,粘贴到这里

跟着上面配置,install-config.yaml 基本算完成了,但是
官方有说"将集群安装到阿里云需要 Cloud Credential Operator (CCO) 在手动模式下运行。修改install-config.yaml文件以将credentialsMode参数设置为Manual"
所以咱们要编辑下 installation_directory目录下的install-config.yaml 文件,加上[credentialsMode: Manual ]
apiVersion: v1
baseDomain: i2docker.site
credentialsMode: Manual
compute:
- architecture: amd64
hyperthreading: Enabled
改完最后,我们把 install-config.yaml 文件 做个备份
用命令生成[安装清单]
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# mkdir -p /root/installation_directory
[root@iZj6c3kpsf1din2xy3rm0lZ ~]# openshift-install create manifests --dir /root/installation_directory
之前花老大功夫弄得 ccoctl 工具,派上用场了,它用途是生成一些[凭据文件],放到上面[安装清单]中。
提取对象列表
mkdir -p /root/path_to_directory_with_list_of_credentials_requests/credrequests
oc adm release extract --credentials-requests --cloud=alibabacloud --to=/root/path_to_directory_with_list_of_credentials_requests/credrequests quay.io/openshift-release-dev/ocp-release:4.10.5-x86_64
ccoctl工具处理对象
mkdir -p /root/path_to_ccoctl_output_dir
ccoctl alibabacloud create-ram-users --name alitanker --region=hongkong --credentials-requests-dir=/root/path_to_directory_with_list_of_credentials_requests/credrequests --output-dir=/root/path_to_ccoctl_output_dir
生成文件放到安装清单
cp /root/path_to_ccoctl_output_dir/manifests/*credentials.yaml /root/installation_directory/manifests/
齐活开始部署集群,整个部署过程我花费了INFO Time elapsed: 34m41s ,记得要有耐心。
一行命令部署:
openshift-install create cluster --dir /root/installation_directory \
--log-level=debug
执行这行命令,建议通过阿里云VNC执行。 因为我网络不稳定,也没放到后台执行,SSH堡垒机断过。
查看上面命令的输出内容,openshift安装过程中频繁的调用了阿里云的API,去创建各类资源。
同时我邮箱里也收到大量的阿里云邮件。

等待了34m41s后,控制输入如下内容,表示你创建成功了。
INFO Waiting up to 10m0s (until 3:53PM) for the openshift-console route to be created...
DEBUG Route found in openshift-console namespace: console
DEBUG OpenShift console route is admitted
INFO Install complete!
INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/root/ocp-install/auth/kubeconfig'
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.tanker.i2docker.site
INFO Login to the console with user: "kubeadmin", and password: "IcAxR-jxb4U-zDF9T-AxyTy"
DEBUG Time elapsed per stage:
DEBUG cluster: 1m51s
DEBUG bootstrap: 42s
DEBUG Bootstrap Complete: 15m17s
DEBUG API: 3m18s
DEBUG Bootstrap Destroy: 27s
DEBUG Cluster Operators: 16m18s
INFO Time elapsed: 34m41s
其实部署可以不用花这么久的,原因是nat网关绑定的公网IP ,给创建的5MB按量付费带宽,我就纳闷咱都按量付费,你给个5MB带宽干啥, 手动变下配置,改成峰值200MB。
可以使用浏览器,进行访问
地址:https://console-openshift-console.apps.tanker.i2docker.site
账号:kubeadmin
密码:IcAxR-jxb4U-zDF9T-AxyTy

我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐
基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于
我刚刚安装了带有RVM的Ruby2.2.0,并尝试使用它得到了这个:$rvmuse2.2.0--defaultUsing/Users/brandon/.rvm/gems/ruby-2.2.0dyld:Librarynotloaded:/usr/local/lib/libgmp.10.dylibReferencedfrom:/Users/brandon/.rvm/rubies/ruby-2.2.0/bin/rubyReason:Incompatiblelibraryversion:rubyrequiresversion13.0.0orlater,butlibgmp.10.dylibpro
我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da
我已经通过提供MagickWand.h的路径尝试了一切,我安装了命令工具。谁能帮帮我?$geminstallrmagick-v2.13.1Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingrmagick:ERROR:Failedtobuildgemnativeextension./Users/ghazanfarali/.rvm/rubies/ruby-1.8.7-p357/bin/rubyextconf.rbcheckingforRubyversion>=1.8.5...yescheckingfor/
我正在使用macos,我想使用ruby驱动程序连接到sqlserver。我想使用tiny_tds,但它给出了缺少free_tds的错误,但它已经安装了。怎么能过这个?~brewinstallfreetdsWarning:freetds-0.91.112alreadyinstalled~sudogeminstalltiny_tdsBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtiny_tds:ERROR:Failedtobuildgemnativeextension.完整日志如下:/System
我正在使用PostgreSQL9.1.3(x86_64-pc-linux-gnu上的PostgreSQL9.1.3,由gcc-4.6.real(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1,64位编译)和在ubuntu11.10上运行3.2.2或3.2.1。现在,我可以使用以下命令连接PostgreSQLsupostgres输入密码我可以看到postgres=#我将以下详细信息放在我的config/database.yml中并执行“railsdb”,它工作正常。开发:adapter:postgresqlencoding:utf8reconnect:falsedat
如何解决这个错误:$rvminstall1.9.3Searchingforbinaryrubies,thismighttakesometime.Nobinaryrubiesavailablefor:osx/10.9/x86_64/ruby-1.9.3-p547.Continuingwithcompilation.Pleaseread'rvmhelpmount'togetmoreinformationonbinaryrubies.Checkingrequirementsforosx.Certificatesin'/usr/local/etc/openssl/cert.pem'arealr
下载微PE工具箱进入官网下载微PE工具箱-下载 安装好后,打开微PE工具箱客户端,选择安装PE到U盘 PE壁纸可选择自己喜欢的壁纸,勾选上包含DOS工具箱,个性化盘符图标 下载原版系统进入网站下载镜像NEXT,ITELLYOU如果没有账号,注册一下就好进入选择开始使用选择win10 这里我们选择消费者版,用迅雷把BT种子下载下来 下面的两个盘符,是PE工具箱安装进U盘后,分成的盘符,注意EFI的盘符,这里面不能删东西,也不能添东西,另一个盘符可以当做正常的U盘空间使用,我们现在需要把下载下来的景象文件复制到正常的U盘空间中去 这个时候我们的系统U盘就只做好了 安装系统我们将U盘插入电脑,开机,