OpenShift3.11 社区版搭建

news2024/9/29 21:29:16

一、资源规划

HostnameIPOSCPUMemDisk
master192.168.78.131CentOS7.92vCPU4G60G
node1192.168.78.132CentOS7.92vCPU4G60G
node2192.168.78.133CentOS7.92vCPU4G60G

二、安装过程:

2.1 前期配置

开启所有节点的 SELinux (所有主机执行)
grep -v ^# /etc/selinux/config | grep -v ^$

# 显示如下则证明已经开启了 SELinux,否则照此修改配置,并重启主机
SELINUX=enforcing
SELINUXTYPE=targeted

确保所有的节点都已经开启 SELinux
在这里插入图片描述

所有节点关闭防火墙(所有主机执行)
systemctl stop firewalld && systemctl disable firewalld
修改 /etc/hosts文件(Master主机执行)
vi /etc/hosts

# 新增如下内容
192.168.78.131  master.lab.unicom.com  master
192.168.78.132  node1.lab.unicom.com  node1
192.168.78.133  node2.lab.unicom.com  node2
复制到其他节点(Master主机执行)
for i in 2 3;do scp /etc/hosts root@192.168.78.13$i:/etc;done
配置免密登录(Master主机执行)
ssh-keygen -t rsa -P ''
ssh-copy-id master
ssh-copy-id master.lab.unicom.com
复制到其他节点(Master主机执行)
for i in {1..3};do ssh-copy-id 192.168.26.13$i;done
for i in {1..2};do ssh-copy-id node$i;done
for i in {1..2};do ssh-copy-id node$i.lab.unicom.com;done

2.2 安装依赖包

安装 OpenShift 依赖的软件包(所有主机执行)
yum -y install wget git net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct bash-completion.noarch python-passlib NetworkManager vim
安装docker(所有主机执行)
yum -y install docker-1.13.1
配置 Docker 镜像仓库地址(所有主机执行)
cat > /etc/docker/daemon.json<<EOF
{
  "registry-mirrors" : [
      "https://registry.docker-cn.com",
      "https://docker.mirrors.ustc.edu.cn",
      "http://hub-mirror.c.163.com",
      "https://cr.console.aliyun.com/",
      "https://0trl8ny5.mirror.aliyuncs.com"ps -ef
  ]
}
EOF
重启 Docker 使得配置地址生效(所有主机执行)
systemctl daemon-reload && systemctl restart docker && systemctl enable docker
Master 主机上安装 Ansible
yum -y install epel-release
yum -y install centos-release-ansible-28.noarch
yum list ansible --showduplicates
yum -y install ansible-2.8.6

# 查看ansible版本
ansible --version

2.3 安装/配置 openshift

Master 主机上下载安装 openshift-ansible-3.11.764-1.tar.gz

下载 openshift-ansible-3.11.764-1.tar.gz 安装包,解压后文件夹重命名

wget ttps://github.com/openshift/openshift-ansible/archive/refs/tags/openshift-ansible-3.11.764-1.tar.gz
tar -zxvf openshift-ansible-3.11.764-1.tar.gz
mv openshift-ansible-openshift-ansible-3.11.764-1/  openshift-ansible
编写ansible Inventory文件(Master 主机)
vim /etc/ansible/hosts

# 修改内容如下
[OSEv3:children]
masters
nodes
etcd

[OSEv3:vars]
ansible_ssh_user=root
# 使用origin社区版
openshift_deployment_type=origin
deployment_type=origin
# 指定安装版本
openshift_release=v3.11
# 指定默认域名,访问时需要使用该域名,无dns服务器时需要手动添加本地hosts文件
openshift_master_default_subdomain=lab.unicom.com
# 禁止磁盘、内存、镜像的检查
openshift_disable_check=disk_availability,docker_storage,memory_availability
# disk_availability: 报错信息是推荐的master磁盘空间剩余量大于40GB。测试环境无法满足;跳过检测
# memory_availability: 报错信息是推荐的master内存为16GB;node内存为8GB;测试环境无法满足;跳过检测
# docker_image_availability: 报错信息是需要的几个镜像未找到;选择跳过;装完集群后;在使用的时候再自行下载
# docker_storage: 报错信息是推荐选择一块磁盘空间存储镜像;这里选择跳过。采用docker默认的方式存储镜像
openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
openshift_master_htpasswd_file=/etc/origin/master/htpasswd
# ntp时间同步
openshift_clock_enabled=true
# 节点配额
openshift_node_groups.edits={'pods-per-core': ['10']}
# 主机组
[masters]
master openshift_schedulable=True
# 节点的主机组,包含region和infra
[nodes]
master openshift_node_groups.labels="{'region': 'infra'}"
node1 openshift_node_groups.labels="{'region': 'infra', 'zone': 'default'}"
node2 openshift_node_groups.labels="{'region': 'infra', 'zone': 'default'}"
master openshift_node_group_name='node-config-master'
node1 openshift_node_group_name='node-config-compute'
node2 openshift_node_group_name='node-config-compute'

# 至少有一个节点需要是node-config-infra
node2 openshift_node_group_name='node-config-infra'

[etcd]
master
部署前检测

# 提前创建密码保存文件,不然待会会报错
mkdir -p /etc/origin/master/
touch /etc/origin/master/htpasswd

[root@master ~]# ansible-playbook  -i  /etc/ansible/hosts  /root/openshift-ansible/playbooks/prerequisites.yml

# 执行结束后若无问题会显示localhost、master、node1、node2的failed=0,Initialization  : Complete (0:01:33)
# 若有问题,排错后多次执行
正式部署
ansible-playbook  -i  /etc/ansible/hosts  /root/openshift-ansible/playbooks/deploy_cluster.yml
# 部署过程中会出现pull faild发生retry,等待重试完成即可

三、openshift 验证

# 安装完成结果检查
oc get nodes

在这里插入图片描述
node2 节点的 roles 类型不对,需要将 node2 打上 compute 标签,因为它也是计算节点

oc label node node2 node-role.kubernetes.io/compute=true

再次检查
在这里插入图片描述

# 查看pods
oc get pods

在这里插入图片描述

使用管理员登录集群并创建管理员账号
oc login -u system:admin
# 检查登录用户
oc whoami 

# 创建管理员账号
htpasswd -b /etc/origin/master/htpasswd admin redhat

# 使用新用户登录集群
oc login -u admin -p redhat

# 检查登录用户
oc whoami 
# admin
使用浏览器访问 OpenShift Web Console

注意:需要提前为宿主机设置hosts

# OpenShift
192.168.78.131 master.lab.unicom.com

使用宿主机浏览器访问:https://master.lab.unicom.com:8443/
使用用户名密码(admin/redhat)访问即可

快速创建一个小的应用

注意:需要提前为宿主机设置hosts

# 用户登录
oc login -u admin -p redhat

# 创建项目、切换至该项目
oc new-project hello
oc project hello

# 拉取镜像
docker pull docker.io/openshift/hello-openshift

# 通过镜像创建应用
oc new-app docker.io/openshift/hello-openshift

在这里插入图片描述

# 获取pod 的详细信息
oc status

# 访问该服务
curl 172.30.223.69:8080

在这里插入图片描述

四、openshift常用操作命令

#通过CLI登陆openshift
oc login https://10.19.169.XX:8443 -u username -p password

#退出登陆
oc logout

#查看所有的proeject信息
oc projects

#创建新的project
oc new-project myproject

#切换project空间到myproject下
oc project myproject

#查看project下的服务状态
oc status

#查看project下的所有服务
oc get svc -n myproject

#查看project下的pod信息
oc get pods -n myproject

#获取project下服务的buildconfig信息,一个build就是一个把输入参数转化为输出结果的过程。通常,这个过程用于把source code转化为一个执行的image。
oc describe bc bcname

#获取project下服务的deploymentconfig信息,DeploymentConfig定义了在Openshift部署什么,如何运行。
oc describe dc dcname

#将pod内部服务对外暴露
oc expose svc servicename

#查看服务的build config日志
oc logs -f bc/servicename

#查看服务的deploy config日志
oc logs -f dc/servicename

#在project下基于jdk8镜像和GitLab代码 创建app,new-app 为微服务应用创建了相应的bc、dc和svc
oc new-app openshift/redhat-openjdk18-openshift~http://10.119.169.XX/ChinaTechnologyPlatform/XX.git --allow-missing-imagestream-tags --strategy=source

#根据is创建app
oc new-app -i openshift/custom-mysql:latest -p MYSQL_USER=workflow -p MYSQL_PASSWORD=Kpmg#1234 -p MYSQL_DATABASE=workflowdb -p MYSQL_ROOT_PASSWORD=Kpmg#1234 -p MYSQL_LOWER_CASE_TABLE_NAMES=1 --name=“mysqlserver” -n workflow-service-dev

#基于template模板创建应用
oc new-app --template=jenkins-persistent -n jenkins-pipeline

#查看project下的pod信息
oc get pods

#查看模板信息
oc get template

#openshift模板导出
oc export bc,dc,svc,is,route -o json –as-template=”test-template” > ~/test-template.yaml

#扩展容器pod数
oc scale dc service-name --replicas=5

#编辑template模板
oc edit template templatename

#登陆pod内部
oc exec podname -itbash -li

#创建template
可以通过openshift的web console台导入

#给pv 打上标签disktype=ssd
oc label pv pv002 disktype=ssd

#查看pv上的标签
oc get pv --show-labels

#回滚到最近部署成功的版本
oc rollout undo dc/dcname

#获取dc部署版本信息
oc rollout history dc/dcname

#回滚到指定的版本
oc rollout undo dc/dcname --to-revision=2

创建一个imagestream 并将内部镜像仓库的镜像同步到imagestream中
#创建imagestrem
oc create imagestream custom-mysql

#创建imagestream tag和内部镜像关联上
oc tag registry.example.com/custom-mysql:latest custom-mysql:latest

#同步已有镜像到imagestream
oc import-image custom-mysql:latest --insecure -n openshift

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1913606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

30斤的东西寄什么快递便宜?寄大货物品用哪家快递公司?

作为一个大学生&#xff0c;搬迁宿舍、放假回家时&#xff0c;总有一些物品需要寄送。对于30斤左右的物品来说&#xff0c;选择合适的快递公司和打包方式可以大大节省费用。今天&#xff0c;我就来给大家分享一些省钱寄快递的方法和技巧&#xff0c;希望能帮到你们。云木寄快递…

【独家揭秘】视频号矩阵系统火爆上线,一键式多平台管理,你的内容营销神器!

在信息爆炸的时代&#xff0c;内容创作者们面临着前所未有的挑战与机遇。如何让自己的内容在众多平台中脱颖而出&#xff0c;快速传播并吸引大量观众&#xff0c;成为了每个创作者关注的焦点。近日&#xff0c;一款名为“迅狐视频号矩阵系统”的神器震撼来袭&#xff0c;它以其…

SpringBoot开发实用篇(三)

一&#xff1a;任务 1&#xff1a;SpringBoot整合Quartz 导入SpringBoot整合quartz的坐标定义具体要执行的任务&#xff0c;继承QuartzJobBean定义工作明细和触发器&#xff0c;并绑定对应关系 2&#xff1a;SpringBoot整合task 开启定时任务功能设置定时执行的任务&#x…

关于《中国PostgreSQL考试认证体系》通知

为响应国家大数据战略发展的号召&#xff0c;进一步推动PostgreSQL开源数据库在国内的快速发展&#xff0c;加强PostgreSQL 数据库相关人才培养&#xff0c;由政府相关部门批准发起&#xff0c;组成中国PostgreSQL认证考试中心及PostgreSQL 中国大学&#xff0c;旨在共同规范和…

滥用云服务进行传播的恶意软件越来越多

由于云服务提供了传统方式所不具备的可扩展性、匿名性和容错性&#xff0c;攻击者越来越多地开始利用云服务来存储、分发和建立 C&C 信道&#xff0c;例如 VCRUM 存储在 AWS 上或 SYK Cryptor 通过 DriveHQ 进行分发。 过去的一个月内&#xff0c;研究人员一直在监控使用这…

Transformer常见问题

1.位置编码有哪些&#xff1f; a. 正弦和余弦位置编码&#xff08;Sinusoidal Positional Encoding&#xff09; 原理&#xff1a;使用固定的正弦和余弦函数来生成位置编码。 b.学习位置编码&#xff08;Learnable Positional Encoding&#xff09; 原理&#xff1a;将位置编…

React+TS前台项目实战(二十八)-- 首页响应式构建之剩余模块布局

文章目录 前言BlockList区块1. 完整页面效果展示2. 功能分析3. 代码详细注释4. 使用方式 TranctionList交易模块总结 前言 今天&#xff0c;我们继续完善首页剩余模块的响应式布局交互。通过关注点分离的方法&#xff0c;逐步切割模块至最小单元&#xff0c;并结合React的hook…

中职大数据实训室

一、中职大数据实训室建设背景 《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》中强调了数字化转型的重要性&#xff0c;明确提出了建设数字中国的战略目标。大数据技术作为数字化转型的核心&#xff0c;对于培养具备大数据分析、处理和应用能力的…

K8s GPU 资源管理探索:在 KubeSphere 上部署 AI 大模型 Ollama

作者&#xff1a;运维有术星主 随着人工智能、机器学习、AI 大模型技术的迅猛发展&#xff0c;我们对计算资源的需求也在不断攀升。特别是对于需要处理大规模数据和复杂算法的 AI 大模型&#xff0c;GPU 资源的使用变得至关重要。对于运维工程师而言&#xff0c;掌握如何在 Kub…

人工智能和机器学习 (复旦大学计算机科学与技术实践工作站)20240703(上午场)人工智能初步、mind+人脸识别

前言 在这个科技日新月异的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐渗透到我们生活的方方面面&#xff0c;从智能家居到自动驾驶&#xff0c;无一不彰显着AI的强大潜力。而人脸识别技术作为AI领域的一项重要应用&#xff0c;更是以其高效、便捷的特点受到了…

[C++初阶]list类的初步理解

一、标准库的list类 list的底层是一个带哨兵位的双向循环链表结构 对比forward_list的单链表结构&#xff0c;list的迭代器是一个双向迭代器 与vector等顺序结构的容器相比&#xff0c;list在任意位置进行插入删除的效率更好&#xff0c;但是不支持任意位置的随机访问 list是一…

最新Wireshark查看包中gzip内容

虽然是很简单的事情&#xff0c;但是网上查到的查看gzip内容的方法基本都是保存成zip文件&#xff0c;然后进行二进制处理。 其实现在最新版本的Wireshark已经支持获取gzip内容了。 选中HTTP协议&#xff0c;右键选择[追踪流]->[HTTP Stream] 在弹出窗口中&#xff0c;已…

图像分割SAM辅助标注工具,可调用SAM等大模型(保姆级教程)

SAM等模型通过先进的深度学习技术&#xff0c;实现了高效、精准的图像自动化标注。这不仅显著降低了人工标注的工作量和成本&#xff0c;提高了标注效率和精度&#xff0c;还为各个领域的研究和应用提供了强大的技术支持。随着SAM等模型的不断完善和应用&#xff0c;自动化标注…

一个项目学习Vue3---Vue3中自带的事件

1. .stop 阻止事件继续传播&#xff0c;即防止事件冒泡到父元素。 <div click.stop"handleClick">点击我</div> 2. .prevent 阻止事件的默认行为&#xff0c;比如阻止表单提交时的页面刷新。 <form submit.prevent"handleSubmit">阻…

springboot美食分享平台-计算机毕业设计源码45429

基于Web美食分享平台的系统设计与实现 摘 要 本研究基于Spring Boot框架&#xff0c;设计并实现了一个Web美食分享平台&#xff0c;旨在为用户提供一个交流分享美食体验的社区平台。该平台涵盖了用户注册登录、美食制作方法分享发布、点赞评论互动等功能模块&#xff0c;致力于…

递归(四)—— 初识暴力递归之“打印字符串的全排列”

题目1&#xff1a;序列打印一个字符串的全排列 题目分析&#xff1a;结合一实例来理解题目&#xff0c;str “abc”的全排列就是所求得的序列是 strp[0~2]的所有位的排列组合&#xff0c;strNew {“abc”, “acb”, “bac”, “bca”,”cba”,”cab”} 思路1&#xff1a;枚…

外卖小哥必备!高性价比千元机,送餐更高效

有一群赶时间的人&#xff0c;经常看到他们慌忙的穿梭于大街小巷&#xff0c;他们不仅是城市的风景线&#xff0c;更是无数人心中的温暖使者——外卖小哥 在争分夺秒的背后&#xff0c;一台合适的手机&#xff0c;成为了他们不可或缺的必需品&#xff0c;那什么样的手机更方便呢…

从两眼放光到心碎一地《长相思》第二季搞笑爱情转折

这《长相思》第二季的剧情&#xff0c; 简直是心脏按摩器升级版啊&#xff01; 爷爷一开口&#xff0c;要给玱玹安排馨悦当王后 我这小心脏差点就跟着‘嘭’一声 "哎呀&#xff0c;以为要上演宫廷版《速度与激情》 结果小夭女神一出手&#xff0c; 不是醋坛子翻&#…

Ubuntu 20版本安装Redis教程,以及登陆

第一步 切换到root用户&#xff0c;使用su命令&#xff0c;进行切换。 输入&#xff1a; su - 第二步 使用apt命令来搜索redis的软件包&#xff0c;输入命令&#xff1a;apt search redis 第三步 选择需要的redis版本进行安装&#xff0c;本次选择默认版本&#xff0c;redis5.…