请问有人可以告诉我哪个最新版本的 openshift-ansible (origin) 足够稳定,可以安装在 Centos 7 上吗?
我正在寻找成功的多节点安装体验和使用的任何技巧。
谢谢
最新的稳定版本是3.9
git clone https://github.com/openshift/openshift-ansible
cd openshift-ansible
git checkout release-3.9
并遵循Advanced Installation
指南
https://docs.openshift.org/latest/install_config/install/advanced_install.html
它现在正在工作。
启用openshift_repos_enable_testing=true后,我没有在deploy_cluster剧本之前运行先决条件的剧本,这就是为什么它仍然给出找不到包的错误。
我相信OpenShift OKD/Origin 的 v3.11.0 版本(目前最新的3.x版本)可以满足您的需求。在这个答案中,是将OpenShift OKD/Origin安装为单节点集群服务的完整路线图。
一些信息转自OKD网站关于OpenShift OKD/Origin...
为 Red Hat 提供支持的 Kubernetes 社区发行版 OpenShift。围绕 OCI 容器包装的核心构建和 Kubernetes 容器集群管理,OKD 也通过 应用程序生命周期管理功能和 DevOps 工具。OKD 提供完整的开源容器应用平台。
OKD 是针对连续优化的 Kubernetes 发行版 应用程序开发和多租户部署。OKD 添加 基于 Kubernetes 的以开发人员和运营为中心的工具,以实现 快速应用程序开发,易于部署和扩展,以及 小型和大型团队的长期生命周期维护。OKD 是一个 与Red Hat OpenShift的兄弟级Kubernetes发行版。
OKD 嵌入了 Kubernetes,并通过安全性和其他方式对其进行了扩展。 集成概念。OKD 在 github 中也称为 Origin,并且 在文档中。
如果您正在寻找企业级支持或有关 合作伙伴认证,红帽还提供红帽 OpenShift 容器 平台。
因此,我建议从 OpenShift OKD/Origin 开始,使用以下路线图在 CentOS 7 上安装。然后,您可以探索其他可能性(例如"多节点")。
但是,如果您想测试 OpenShift (OKD) 4.X应用程序,请参阅此链接安装OpenShift (OKD) 4.X 集群(UPI/"裸机")的指南和正确方法。这是一条漫长的道路,并且具有合理的复杂程度。
加:
- GitHub 和 RedHat Ansible 上有关 OpenShift Ansible 的信息;
- 你可以看看OpenShift Installer(不是OKD/Origin!)。
- OpenShift Origin (OKD) - 开源容器应用平台:
OpenShift 是红帽开发的一系列容器化软件产品。其旗舰产品是OpenShift Container Platform - 一个围绕Docker容器构建的本地平台即服务,由Kubernetes在Red Hat Enterprise Linux的基础上编排和管理。该系列的其他产品通过不同的环境提供此平台:OKD作为社区驱动的上游(类似于Fedora在Red Hat Enterprise Linux的上游),OpenShift Online是作为软件即服务提供的平台,Openshift Dedicive是作为托管服务提供的平台。
OpenShift 控制台具有面向开发人员和管理员的视图。管理员视图允许人们监控容器资源和容器运行状况、管理用户、与操作员合作等。开发人员视图面向使用命名空间中的应用程序资源。OpenShift 还提供了一个 CLI,支持 Kubernetes CLI 提供的操作的超集。
OpenShift Origin(OKD)是OpenShift(非企业级)的社区驱动版本。这意味着您可以免费托管自己的PaaS(平台即服务),而且几乎没有任何麻烦。
[参考文献:https://en.wikipedia.org/wiki/OpenShift , https://www.openshift.com/blog/openshift-ecosystem-get-started-openshift-origin-gitlab]
- 在 CentOS 7 上設置本地 OpenShift Origin (OKD) 簇 體
此设置中的所有命令都必须使用"root"用户执行。
- 更新 CentOS 7
正在更新您的 CentOS 7 服务器...
yum -y update
- 安装和配置 Docker
OpenShift 需要主机上的 docker 引擎来运行容器。使用 以下命令在 CentOS 7 上安装 Docker 和其他依赖项...
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum -y install git-core
yum -y install wget
yum -y install yum-utils
yum -y install device-mapper-persistent-data
yum -y install lvm2
yum -y install docker-ce
yum -y install docker-ce-cli
yum -y install containerd.io
将登录的用户帐户添加到 docker 组...
usermod -aG docker $USER
newgrp docker
创建必要的文件夹...
mkdir "/etc/docker"
mkdir "/etc/containers"
使用不安全的注册表参数("172.30.0.0/16")创建"registries.conf"文件到 Docker 守护程序...
tee "/etc/containers/registries.conf" << EOF
[registries.insecure]
registries = ['172.30.0.0/16']
EOF
使用配置创建"daemon.json"文件...
tee "/etc/docker/daemon.json" << EOF
{
"insecure-registries": [
"172.30.0.0/16"
]
}
EOF
我们需要重新加载 systemd 并在编辑配置后重新启动 Docker 守护进程......
systemctl daemon-reload
systemctl restart docker
启用 Docker 以在启动时启动...
systemctl enable docker
然后在您的系统上启用"IP 转发"...
tee "/etc/sysctl.d/ip_forward.conf" << EOF
net.ipv4.ip_forward=1
EOF
sysctl -w net.ipv4.ip_forward=1
- 配置防火墙。
添加必要的防火墙权限...
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=8443/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --zone=public --add-port=8053/udp --permanent
firewall-cmd --reload
注意:允许容器访问 OpenShift 主 API (8443/tcp)、DNS (53/udp) 端点并添加其他权限。
- 下载 OpenShift
从GitHub下载OpenShift二进制文件,并将它们移动到"/usr/local/bin/"文件夹。
wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
tar -zxvf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
cd ./openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit
mv ./oc /usr/local/bin/
mv ./kubectl /usr/local/bin/
rm -rf ./openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit*
验证 OpenShift 客户端实用程序的安装...
oc version
- 启动 OpenShift 源 (OKD) 本地集群
现在通过运行以下命令引导本地单服务器 OpenShift 源集群...
oc cluster up --public-hostname="<YOUR_SERVER_IP_OR_NAME>"
。或。。。
oc cluster up --public-hostname="$(ip route get 1 | awk '{print $NF;exit}')"
上面的这个将动态获取本地计算机的主 IP 地址。
[参考文献:https://stackoverflow.com/a/25851186/3223785
]提示:如果出现错误,请尝试执行命令oc cluster down
并重复上述命令。
注意:硬件配置不足(主要是 CPU 和 RAM)将导致上述命令超时。
重要说明:如果未通知参数--public-hostname="<YOUR_SERVER_IP_OR_NAME>"
,则对 URL<YOUR_SERVER_IP_OR_NAME>
Web 服务("Web 控制台")的调用将重定向到本地 IP"127.0 .0.1"。
[参考文献:https://github.com/openshift/origin/issues/19699 , https://github.com/openshift/origin/issues/19699#issuecomment-854069124 , https://github.com/openshift/origin/issues/20726 , https://github.com/openshift/origin/issues/20726#issuecomment-498078849 , https://hayardillasenlared.blogspot.com/2020/06/instalar-openshift-origin-ubuntu.html , https://www.a5idc.net/helpview_526.html , https://thecodeshell.wordpress.com/, https://www.techrepublic.com/article/how-to-install-openshift-origin-on-ubuntu-18-04/]
上面的命令将...
- 在通知的接口上启动 OKD 集群监听 (
<YOUR_SERVER_IP_OR_NAME>:8443
); - 启动一个 Web 控制台,侦听所有接口 "/console" (
<YOUR_SERVER_IP_OR_NAME>:8443
); - 启动 Kubernetes 系统组件;
- 配置注册表、路由器、初始模板和默认项目;
- OpenShift 集群将作为一体式容器在 Docker 主机上运行。
成功安装后,您应该获得类似于以下内容的输出...
[...]
Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.
The server is accessible via web console at:
https://<YOUR_SERVER_IP_OR_NAME>:8443
You are logged in as:
User: developer
Password: <any value>
To login as administrator:
oc login -u system:admin
技巧:
- 在设置 Openshift 原点时,可以应用许多选项。用
oc cluster up --help
查看它们; - 使用自定义选项的命令模型...
型
oc cluster up --public-hostname="<PUBLIC_HOSTNAME_OR_IP>" --routing-suffix="<PUBLIC_HOSTNAME_OR_IP>.<SUFFIX>"
例
oc cluster up --public-hostname="192.168.56.124" --routing-suffix="192.168.56.124.nip.io"
;
- OpenShift Origin 集群配置文件将位于 "~/openshift.local.clusterup" 目录中。"~"是登录的用户主目录。
如果群集设置成功,则命令...
oc cluster status
。会给你这样的积极输出...
Web console URL: https://<YOUR_SERVER_IP_OR_NAME>:8443/console/
Config is at host directory
Volumes are at host directory
Persistent volumes are at host directory /root/openshift.local.clusterup/openshift.local.pv
Data will be discarded when cluster is destroyed
- 在系统启动时将 OpenShift 作为单节点群集服务运行
创建 OpenShift 服务文件...
read -r -d '' FILE_CONTENT << 'HEREDOC'
BEGIN
[Unit]
Description=OpenShift oc cluster up service
After=docker.service
Requires=docker.service
[Service]
ExecStart=/usr/bin/bash -c "/usr/local/bin/oc cluster up --public-hostname="$(ip route get 1 | awk '{print $NF;exit}')""
ExecStop=/usr/bin/bash -c "/usr/local/bin/oc cluster down"
Restart=no
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=occlusterup
User=root
Type=oneshot
RemainAfterExit=yes
TimeoutSec=300
[Install]
WantedBy=multi-user.target
END
HEREDOC
echo -n "${FILE_CONTENT:6:-3}" > '/etc/systemd/system/openshift.service'
注意:由于某种原因,如果没有解决方法/usr/bin/bash -c "<SOME_COMMAND>"
我们无法启动 OpenShift 集群。有关oc cluster up
命令参数的其他信息,请参阅下面的参考资料。
[参考文献:https://avinetworks.com/docs/18.1/avi-vantage-openshift-installation-guide/, https://github.com/openshift/origin/issues/7177#issuecomment-391478549 , https://github.com/minishift/minishift/issues/1910#issuecomment-375031172]
[参考文献:https://tobru.ch/openshift-oc-cluster-up-as-systemd-service/, https://eenfach.de/gitblit/blob/RedHatTraining!agnosticd.git/af831991c7c752a1215cfc4cff6a028e31f410d7/ansible!configs!rhte-oc-cluster-vms!files!oc-cluster.service.j2]
启动并启用(启动时启动)OpenShift 服务,并按顺序查看日志输出...
systemctl enable openshift.service
systemctl start openshift.service
journalctl -u openshift.service -f --no-pager | less
- 使用 OpenShift OKD/Origin Admin Console
OKD 包含一个 Web 控制台,可用于创建和其他管理操作。此 Web 控制台可通过 https 在端口 8443 上的服务器 IP/主机名上访问。
https://<IP_OR_HOSTNAME>:8443/console
注意:您应该会看到一个 OpenShift Origin 页面,其中包含用户名和密码表单(用户名:开发人员/密码:开发人员)。
- 在群集中部署测试应用程序
以"常规开发人员"用户身份登录 Openshift 集群(用户名:开发人员/密码:开发人员)...
oc login
提示:您开始以"开发人员"身份登录。
使用 oc "新建项目" 命令创建一个测试项目...
型
oc new-project <PROJECT_NAME> --display-name="<PROJECT_DISPLAY_NAME>" --description="<PROJECT_DESCRIPTION>"
例
oc new-project test-project --display-name="Test Project" --description="My cool Test Project."
注意:以下所有涉及"部署示例"参数值的命令都将链接到"测试项目",因为在创建此项目后,它将被选为后续设置的项目。要使用oc login -u system:admin
命令以管理员身份确认此登录并查看oc status
命令的输出。有关详细信息,请参阅"某些 OpenShift 源集群有用命令"部分中的oc project <PROJECT_NAME>
命令。
从 Docker 中心注册表标记应用程序映像...
oc tag --source=docker openshift/deployment-example:v2 deployment-example:latest
将应用程序部署到 OpenShift...
型
oc new-app <DEPLOYMENT_NAME>
例
oc new-app "deployment-example"
允许外部访问已部署的应用程序...
型
oc expose "svc/<DEPLOYMENT_NAME>"
例
oc expose "svc/deployment-example"
显示应用程序部署状态...
oc status
显示窗格状态...
oc get pods
获取服务详细信息...
oc get svc
测试应用程序本地访问...
注意:请参阅上面的命令oc get svc
输出<CLUSTER_IP>
。
curl http://<CLUSTER_IP>:8080
请参阅已部署应用程序的外部访问路由...
oc get routes
测试对应用程序的外部访问...
在浏览器上打开 URL<HOST_PORT>
。
型
http://<HOST_PORT>
例
http://deployment-example-test-project.192.168.56.124.nip.io
笔记:
- 请参阅
oc get routes
输出<HOST_PORT>
; - 通配符 DNS 记录
*.<IP_OR_HOSTNAME>.nip.io
指向 OpenShift 源服务器 IP 地址。
删除测试项目...
型
oc delete project "<PROJECT_NAME>"
例
oc delete project "test-project"
[参考资料:https://docs.openshift.com/container-platform/4.2/applications/projects/working-with-projects.html#deleting-a-project-using-the-CLIprojects]
删除测试部署...
型
oc delete all -l app="<DEPLOYMENT_NAME>"
例
oc delete all -l app="deployment-example"
删除项目和部署后检查 Pod 状态...
oc get pods
提示:完全重新创建群集...
oc cluster down
rm -rf ~/openshift.local.clusterup
.可能需要重新启动服务器才能删除上述文件夹;
."~"是登录的用户主目录。
- 一些 OpenShift 源集群有用的命令
要以管理员身份登录,请使用...
oc login -u system:admin
作为管理员("系统:管理员")用户,您可以看到节点状态等信息...
oc get nodes
要获取有关特定节点的更多详细信息,包括当前状况的原因...
型
oc describe node "<NODE_NAME>"
例
oc describe node "localhost"
要显示您创建的资源的摘要,请执行以下操作...
oc status
选择要执行 CLI 操作的项目...
oc project "<PROJECT_NAME>"
注意:所选项目将用于操作项目范围内容的所有后续操作。
[参考文献:https://docs.openshift.com/container-platform/4.2/applications/projects/working-with-projects.html#viewing-a-project-using-the-CLI_projects]
要返回"常规开发人员"用户(用户名:开发人员/密码:开发人员)...
oc login
要检查谁是登录用户...
oc whoami
<小时 />谢谢! =D