" />

OpenShift简介

2024/5/8 19:11:47
日期 版本 作者 备注
2019-12-20 V1 Andy_F(老范)

查看本文档需要具备容器及kubernetes相关知识

一,简介

​ 众所周知,kubernetes作为容器编排系统的通用标准,它的出现促进了PaaS的飞速发展和企业PaaS的落地,OpenShift是红帽基于kubernetes推出的企业级PaaS平台,他提供了开箱即用的PaaS功能。

​ OpenShift因kubernetes而生,kubernetes因OpenShift走向企业级PaaS平台。在过去的时间里,红帽以及各大厂商为kubernetes提供了大量的代码,诸如google/redhat/华为/中兴/微软/vmware等。

​ kubernetes专注于容器的编排方面,而OpenShift基于kubernetes之上提供了整套的企业级PaaS所用到的功能,诸如管理员控制台(web化)/日志系统/入口流量(route)/镜像仓库/监控/持久存储/应用模板/CI CD/等...

​ kubernetes每年发布4个版本,而OpenShift则会选择当前最新版的上一个版本,以便报证企业级使用的稳定性

​ OpenShift还实现了对IaaS的管理能力,也就是说当OpenShift集群资源不足的情况下可以自动从IaaS中的机器资源里添加机器至OpenShift集群中。目前只支持对AWS EC2的管理。

二,概念

​ 不完全统计,不包含kubernetes本身的一些组件概念

  • RHEL

    # Red Hat Enterprise Linux 
  • RHCOS

    # Red Hat Enterprise Linux CoreOS 
    # 一种适用于容器运行环境的操作系统,一般简称CoreOS
    # RedHat官方也建议将OpenShift部署到CoreOS之上,我们也可以使用RHEL来部署OpenShift work节点
    # https://access.redhat.com/documentation/zh-cn/openshift_container_platform/4.2/html/architecture/architecture-rhcos#rhcos-about_architecture-rhcos
  • OCP

    # OpenShift Container Platform(OpenShift容器平台)
    # 一般人们更多时候习惯于将OpenShift称之为OCP
  • OKD

    # OpenShift的社区版
  • ImageStream

    # ImageStream是一类镜像的集合,镜像的tag则指向的是实际的镜像
    # 假如说在OpenShift集群之外有一个镜像库,而OpenShift又想使用则可以将镜像导入到ImageStream中,在导入的时候加上--scheduled=true,则表示ImageStream会定期去原始仓库中检查镜像的更新
    # 在deploy中使用ImageStream时,我们设置一个触发器,当镜像的tag发生变化时,触发器则会自动部署此镜像,此功能可以帮助我们实现在没有CI/CD的前提下自动部署。
  • Quay

    # 企业级的镜像仓库,貌似需要授权
  • Operator

    # OpenShift中管理有状态应用的生命周期组件
  • Router

    # 负责提供外部访问OpenShift集群中的内部应用的能力,类似于ingress
    # 实际是由一组HaProxy实现的,运行在OpenShift的Infra节点上的一组pod以hostnetwork的方式运行,可以提供HTTP/HTTPS/WebSockets/TLS with SNI协议的访问。
  • Infra节点

    # 与Kubernetes的节点类型的不同之处便是OpenShift多了一种节点,就是Infra节点
    # Infra节点主要是用于运行内部的镜像仓库/Router/EFK等
    # Infra节点在OpenShift集群中不是必须的
    # 所谓Infra节点就是node节点打上不同的标签后让ocp集成的一些如log,监控等应用跑在对应的节点上而已,这样的好处是在大规模使用时不会影响其他node的性能等.
  • bootstrap

    # bootstrap节点主要是用于安装ocp的master节点,master节点安装完成后可删除此机器
    # bootstrap必须运行在RHCOS之上
  • 待续

三,架构

3.1,组件架构图

​ 由于作者太懒了 什么也没有

3.2,逻辑架构图

​ 由于作者太懒了 什么也没有

3.3,部署架构图

OpenShift简介

四,部署

​ ocp的安装部署方式有很多中模式,公有云安装跟私有云及裸机安装方法各不相同,其中公有云的安装最为简单

参考(https://cloud.redhat.com/openshift/install),为了展示比较底层的安装方式,这里采用裸机的方式部署.

所谓裸机就是一台物理机或虚拟机没安装操作系统的机器,称之为裸机.

​ 官方给出的节点最低配置建议

节点名称 OS 内存 cpu 磁盘
bootstrap RHCOS 16GB 4C 120GB
master RHCOS 16GB 4C 120GB
worker(node) RHCOS/RHEL 8GB 4C 120GB

4.1,软件包下载

​ openshift的相关软件包下载需要有redhat官方网站的账号,请自行申请注册.注册好用户后到如下页面即可下载

​ https://cloud.redhat.com/openshift/install/metal/user-provisioned

# 需要下载三类文件
1.客户端工具及安装工具 ,文件下载链接如下
# kubectl及oc客户端工具
https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux-4.2.14.tar.gz
# ocp安装工具,其实这个可以不用下载,因为底下会使用oc命令生成此工具
https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-install-linux-4.2.14.tar.gz 
2. Pull Secret 文件, 此文件是根据各自的redhat账号密码生成的访问redhat官方镜像仓库的密码文件
# 下载方式如下图

OpenShift简介

3.RHCOS相关的文件,如iso 各私有云平台的模板文件等,这里使用的裸机安装只需要两个文件即可
# 文件列表
https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.2/latest/# 裸机部署时需要的文件如下
# coreos系统iso
https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.2/latest/rhcos-4.2.0-x86_64-installer.iso# 如下两个文件选其一即可,如果是虚拟机下载bios那个就行,物理机则根据自己的主板情况选择,至于bios跟uefi的区别参考https://www.baidu.com
# 此文件是raw格式的磁盘文件,安装coreos的时候需要从http server上获取此文件,因此此文件需要上传至下面安装的http server的目录中
https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.2/latest/rhcos-4.2.0-x86_64-metal-bios.raw.gz
https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.2/latest/rhcos-4.2.0-x86_64-metal-uefi.raw.gz
# 如上所列的三类文件用迅雷下载到本机,底下安装的时候在某台主机上用到某个文件时自行上传

4.2,受限的网络中安装--裸机部署

​ 所谓受限的网络就是服务器无法访问互联网或无法访问redhat官网的网络.

根据官方说明,registry机器必须是要能有访问互联网权限的,其他节点可不用互联网权限

Node hostname IP OS Role
bastion host bastion.ocp1.abc.cn 10.57.1.230 CentOS/RHEL 7 http dns registry ssh跳板机
bootstrap bootstrap.ocp1.abc.cn 10.57.1.229 CoreOS
vip 10.57.1.233
lb-1 lb-1.ocp1.abc.cn 10.57.1.231 CentOS/RHEL 7 haproxy keepalived
lb-2 lb-2.ocp1.abc.cn 10.57.1.232 CentOS/RHEL 7 haproxy keepalived
master-1 master-1.ocp1.abc.cn 10.57.1.221 CoreOS
master-1 master-2.ocp1.abc.cn 10.57.1.222 CoreOS
master-1 master-3.ocp1.abc.cn 10.57.1.223 CoreOS
worker-1 node-1.ocp1.abc.cn 10.57.1.241 CoreOS
worker-2 node-2.ocp1.abc.cn 10.57.1.242 CoreOS
storage ..... ..... ..... .....

在开始安装ocp之前的准备工作

  • 官方下载ocp所需程序包

  • 配置HTTP服务器

    # 上面列举需要下载的ocp安装包等其他文件需要放置到此服务器上
    # 提供http方式下载,安装过程会用到
    # 提供其他机器的yum源服务
    # 如果企业内部有yum服务器则可以共用
  • 配置 DNS服务器

    # 这里dns有如下几个作用
    1,解析ocp各节点所用主机名
    2,转发子域名给ocp的paas平台使用
    3,解析ocp所需其他域名
    # 一般情况下此处解析操作是在各自公司内网的dns上做解析操作
    # 这里使用dnsmasq来充当内网dns服务器,如果各位公司使用的bind或其他则可免去安装步骤只参考解析记录
  • 配置ocp的registry

    # 由于我们是模拟受限的网络中安装,所以需要提前准备
    # 但registry主机是需要连网的,因为registry需要去红帽官方的仓库同步镜像
  • 配置 DHCP

    # 由于ocp的coreos在安装的时候需要设置一些内核参数,而这些内核参数可以通过dhcp及pxe传递
    # 本环境中不用配置dhcp即可,手动指定IP及内核参数
  • 提供所需的负载均衡器

    # haproxy代理bootstrap及master节点的6443及22623端口
    # 待master节点安装完毕则从haproxy的代理列表里删除bootstrap的节点IP
    # 代理router的80 及443端口
    # 4层代理
  • 配置机器的端口防火墙策略

    # 如果各机器之间的端口可随意访问则不用考虑此步

4.2.1,安装http服务

​ for bastion

# 安装nginx或apache提供http下载服务
yum install epel-release -y
yum install nginx -y
# 配置nginx
vim /etc/nginx/nginx.conf
...root         /data/soft_repository;autoindex       on;
...# 启动nginx
systemctl start nginx
systemctl enable nginx
# 创建目录
mkdir -p /data/soft_repository/ocp
# 目录创建好后,请将上面下载好的rhcos-4.2.0-x86_64-metal-bios.raw.gz或rhcos-4.2.0-x86_64-metal-uefi.raw.gz文件上传至此目录
# 后续的安装过程中还会生成一些文件,也需要copy至此目录下,见下面的步骤
mkdir /data/soft_repository/ocp/igns

#### 4.2.2,安装配置dns

​ for bastion

# 这里采用dnsmasq,当然你可以使用任意的dns软件,或者在现有网络中的dns服务器上添加相关解析也可以
yum install dnsmasq -y
vim /etc/dnsmasq.conf
conf-dir=/etc/dnsmasq.d/,*.conf
resolv-file=/etc/upstream_dns.conf
# end# 配置上游dns服务器IP,可设置为局域网内dns服务器的IP或互联网的dns服务器IP
vim /etc/upstream_dns.conf
nameserver 10.57.1.8# 启动dns服务
systemctl start dnsmasq
systemctl enable dnsmasq
# 修改自身dns服务器 为本机
vim /etc/resolv.conf
nameserver 127.0.0.1
# 添加ocp的解析记录,官方参考链接
# https://access.redhat.com/documentation/en-us/openshift_container_platform/4.2/html/installing_on_bare_metal/installing-on-bare-metal#installation-requirements-user-infra_installing-bare-metal# ocp的域名规则如下
# xxx.集群名称.域名
# 同一个网络下的每个集群都需要起一个独一无二的名称,这里叫做ocp1 域名为abc.cnvim /etc/dnsmasq.d/abc.cn.conf
# hostname
address=/bootstrap.ocp1.abc.cn/10.57.1.229address=/master-1.ocp1.abc.cn/10.57.1.221
address=/master-2.ocp1.abc.cn/10.57.1.222
address=/master-3.ocp1.abc.cn/10.57.1.223
address=/node-1.ocp1.abc.cn/10.57.1.241
address=/node-2.ocp1.abc.cn/10.57.1.242address=/lb-1.ocp1.abc.cn/10.57.1.231
address=/lb-2.ocp1.abc.cn/10.57.1.232address=/bastion.ocp1.abc.cn/10.57.1.230# yum and registry server
address=/reg.ocp1.abc.cn/10.57.1.230
address=/yum.ocp1.abc.cn/10.57.1.230# lb
address=/api.ocp1.abc.cn/10.57.1.233
address=/api-int.ocp1.abc.cn/10.57.1.233# router
address=/.apps.ocp1.abc.cn/10.57.1.233
address=/.apps.ocp1.abc.cn/10.57.1.233# etcd,ocp默认自动发现etcd主机的标号是从0开始的
address=/etcd-0.ocp1.abc.cn/10.57.1.221
address=/etcd-1.ocp1.abc.cn/10.57.1.222 
address=/etcd-2.ocp1.abc.cn/10.57.1.223# etcd SRV
srv-host=_etcd-server-ssl._tcp.ocp1.abc.cn,etcd-0.ocp1.abc.cn.,2380,0,10
srv-host=_etcd-server-ssl._tcp.ocp1.abc.cn,etcd-1.ocp1.abc.cn.,2380,0,10
srv-host=_etcd-server-ssl._tcp.ocp1.abc.cn,etcd-2.ocp1.abc.cn.,2380,0,10
# end
# 重启dnsmasq
systemctl restart dnsmasq# 测试解析是否有正常
nslookup aa.apps.ocp1.abc.cn

4.2.3,安装registry

​ for bastion

​ 这个registry主要是用于安装ocp时使用的

# 安装客户端工具
tar xvf openshift-client-linux-4.2.14.tar.gz 
mv oc kubectl /usr/bin/
# 安装podman及httpd-tools,podman容器引擎跟docker类似
yum -y install podman httpd-tools
# 创建相关目录
mkdir -p /opt/registry/{auth,certs,data}
# 为 registry 提供证书,如果您没有现有的可信证书颁发机构,你可以如下生成自签名证书
cd /opt/registry/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key \
-x509 -days 3650 -out domain.crt \
-subj "/C=CN/ST=GD/L=SZ/O=ocp/OU=IT/CN=reg.ocp1.abc.cn"
# 为 registry 生成使用 bcrpt 格式的用户名和密码
htpasswd -bBc /opt/registry/auth/htpasswd admin redhat
# 启动mirror-registry容器,官方默认的启动参数中没有将容器工作在后台,所以这里加了个-d
podman run --name mirror-registry -d -p 5000:5000 \-v /opt/registry/data:/var/lib/registry:z \-v /opt/registry/auth:/auth:z \-e "REGISTRY_AUTH=htpasswd" \-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \-v /opt/registry/certs:/certs:z \-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \docker.io/library/registry:2
# 将私签的证书添加到系统ca信任列表里
cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust
# 验证是否安装成功
# 查看端口5000端口是否监听
netstat -tnlp | grep 5000
# 如果端口已监听则访问下
curl -u admin:redhat -k https://reg.ocp1.abc.cn:5000/v2/_catalog
# 显示如下信息则表示正常
{"repositories":[]}
# 为你的镜像 registry 创建 pull secret
podman login --authfile ~/local_pull_secret.json -u admin -p redhat reg.ocp1.abc.cn:5000
# 输入上面用htpasswd生成的用户名密码cat ~/local_pull_secret.json
# 此文件后面会用到
# 合并官网下载的Pull Secret文件及local_pull_secret.json
# 将两个文件合并为1个,json格式,注意格式
# 合并后的文件内容如下
cat pull_secret.json
{"auths": {# 这段内容是上面我们自己生成的"reg.ocp1.abc.cn:5000": {"auth": "YWRtaW46cmVkaGF0"},# end"cloud.openshift.com": {"auth": "xxxxxxxxxxxxxxxxxxxxxxx","email": "rg_fan@163.com"},"quay.io": {"auth": "xxxxxxxxxxxxxxxxxxxxxxx","email": "rg_fan@163.com"},"registry.connect.redhat.com": {"auth": "xxxxxxxxxxxxxxxxxxxxxxx","email": "rg_fan@163.com"},"registry.redhat.io": {"auth": "xxxxxxxxxxxxxxxxxxxxxxx","email": "rg_fan@163.com"}}
}# 这里简单说明下此文件的作用
# 作用主要是针对红帽官方的registry及我们本地的registry在pull/push镜像时做身份认证使用的
# 接下来同步红帽官方的registry跟ocp相关的镜像到本地的registry中
# 首先设置几个环境变量,这几个环境变量没别的意思,只是为了替换命令中的参数
# 参见 https://access.redhat.com/documentation/zh-cn/openshift_container_platform/4.2/html/installing/installing-restricted-networks-preparations#installation-mirror-repository_installing-restricted-networks-preparations
export OCP_RELEASE=4.2.0
export LOCAL_REGISTRY='reg.ocp1.abc.cn:5000'
export LOCAL_REPOSITORY='ocp4/openshift4'
export PRODUCT_REPO='openshift-release-dev'
# 底下这个简单说明下,就是我们合并后的认证文件
export LOCAL_SECRET_JSON='/root/pull_secret.json'
export RELEASE_NAME="ocp-release"# 执行同步命令
oc adm -a ${LOCAL_SECRET_JSON} release mirror \--from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE} \--to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \--to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}
# 同步会比较慢,如果有代理的话 设置个系统全局代理会稍微快一点.
# 如果中间有网络错误 从新执行下即可
# 执行成功后会输出如下内容,Success以下的信息续保存起来后面会有用
...
...
Success
Update image:  reg.ocp1.abc.cn:5000/ocp4/openshift4:4.2.0
Mirror prefix: reg.ocp1.abc.cn:5000/ocp4/openshift4To use the new mirrored repository to install, add the following section to the install-config.yaml:imageContentSources:
- mirrors:- reg.ocp1.abc.cn:5000/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-release
- mirrors:- reg.ocp1.abc.cn:5000/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-v4.0-art-devTo use the new mirrored repository for upgrades, use the following to create an ImageContentSourcePolicy:apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:name: example
spec:repositoryDigestMirrors:- mirrors:- reg.abc.cn:5000/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-release- mirrors:- reg.abc.cn:5000/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
# 生成基于我们设定的参数生成基于当前版本的openshift-install命令,其中包含如下参数
# 过程比较漫长,当然也可以用上面直接下载的openshift-install
oc adm release extract --command=openshift-install \
--registry-config='/root/pull_secret.json' \
"${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}"
mv openshift-install /usr/bin

4.2.4,安装lb

​ for lb-1 lb-2

# 为 bootstrap节点及master节点的6443端口做负载均衡
# 为 bootstrap节点及master节点的22623端口做负载均衡
# 为router的443及80端口做负载均衡,后端地址默认为所有的node节点,当然也可以更改router的标签选择器让其工作在某几个节点,这样方便控制
# 安装haproxy + keepalived 
yum install haproxy keepalived -y
# 配置haproxy
# 两节点配置一致
vim /etc/haproxy/haproxy.cfg 
# 内容如下
globallog         127.0.0.1 local2chroot      /var/lib/haproxypidfile     /var/run/haproxy.pidmaxconn     65535nbthread    6user        haproxygroup       haproxydaemonstats socket /var/lib/haproxy/stats
defaultsmode                    httplog                     globaloption                  httplogoption                  dontlognulloption http-server-closeoption forwardfor       except 127.0.0.0/8option                  redispatchretries                 3timeout http-request    10stimeout queue           1mtimeout connect         10stimeout client          1mtimeout server          1mtimeout http-keep-alive 10stimeout check           10smaxconn                 3000listen admin_statsstats   enablebind    *:888mode    httpoption  httploglog     globalmaxconn 10stats   refresh 30sstats   uri /statusstats   realm haproxystats   auth admin:adminstats   hide-version#    stats   admin if TRUElisten apiserverbind 0.0.0.0:6443mode tcpserver bootstrap 10.57.1.229:6443 checkserver master1 10.57.1.221:6443 checkserver master-2 10.57.1.223:6443 checkserver master-3 10.57.1.223:6443 checklisten Host_Conf_Serverbind 0.0.0.0:22623mode tcpserver bootstrap 10.57.1.229:22623 checkserver master1 10.57.1.221:22623 checkserver master-2 10.57.1.223:22623 checkserver master-3 10.57.1.223:22623 checklisten router_httpbind 0.0.0.0:80mode tcpserver router-1 10.57.1.241:80 checkserver router-2 10.57.1.242:80 checklisten router_httpsbind 0.0.0.0:443mode tcpserver router-1 10.57.1.241:443 checkserver router-2 10.57.1.242:443 check
# end 保存退出# 启动haproxy
systemctl start haproxy
systemctl enable haproxy
# 查看是否正常
netstat -tnlp | grep haproxy
# 配置keepalived master to lb1
vim /etc/keepalived/keepalived.conf 
# 内容如下,直接删除原内容 替换如下即可
global_defs {router_id 202
}vrrp_script check_haproxy {script "killall -0 haproxy"interval 3fall 5rise 10
}vrrp_instance haproxy {state MASTERpriority 200interface eth0virtual_router_id 52advert_int 1authentication {auth_type PASSauth_pass password}virtual_ipaddress {10.57.1.233}track_script {check_haproxy}
}
# end# 启动keepalivrd
systemctl start keepalived
systemctl enable keepalived
# 配置keepalived master to lb2
vim /etc/keepalived/keepalived.conf 
# 内容如下,直接删除原内容 替换如下即可
global_defs {router_id 202
}vrrp_script check_haproxy {script "killall -0 haproxy"interval 3fall 5rise 10
}vrrp_instance haproxy {state BACKUPpriority 200interface eth0virtual_router_id 52advert_int 1authentication {auth_type PASSauth_pass password}virtual_ipaddress {10.57.1.233}track_script {check_haproxy}
}
# end# 启动keepalivrd
systemctl start keepalived
systemctl enable keepalived

4.2.5, 创建ssh秘钥

​ for bastion

#
ssh-keygen -t rsa -b 4096 -N '' -f ~/.ssh/id_rsa
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

4.2.6,创建并生成安装ocp的配置文件

## 准备配置文件
# 参考 https://access.redhat.com/documentation/zh-cn/openshift_container_platform/4.2/html/installing_on_bare_metal/installing-restricted-networks-bare-metal#installation-initializing-manual_installing-restricted-networks-bare-metal
mkdir /root/ocp1
vim /root/ocp1/install-config.yaml
# 内容参考如上链接
apiVersion: v1
baseDomain: abc.cn
compute:
- hyperthreading: Enabledname: workerreplicas: 0
controlPlane:hyperthreading: Enabledname: masterreplicas: 3
metadata:name: ocp1
networking:clusterNetwork:- cidr: 10.128.0.0/14hostPrefix: 23networkType: OpenShiftSDNserviceNetwork:- 172.30.0.0/16
platform:none: {}
# pullSecret的值只需提供本地registry的认证信息,如上我们生成的~/local_pull_secret.json的所有内容
pullSecret: '{"auths": {"reg.abc.cn:5000": {"auth": "YWRtaW46cmVkaGF0"}}}'
# sshKey的值为cat ~/.ssh/id_rsa.pub
sshKey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcWt4hlgbZIW0kP+Jv+Ru63XiOwfRFWq1itHsWspdHLK+chmdSA2Ye5b7xMqoiyEDl2hpwmRB1O65hU1pEIur9+jfqkzxFO6Bl7G/NRw6RLUMFk+IN3d3HLEErQvIiuaL5zyWUTcY9pr4TcYwdWQd4ie2Z/EeWF4j1HU35RKj5eFPrGyyUTKJRwH0bh+dKgmddjgu/WqVAwDMuQHloQBfuPYn6mZv1oj9JFJaJ2HhCVcWdAylZ0WjBxbtSukZ4fjODfHvJDpHQVBHKwqOxUzrCURanAC2V7LVbcfTOV/arBRcaN8yLai2Q+mUZHaL0u5IPTSbw4nO5lcxN5hA9m5PAI6Z8WL6jkOAjSb4CfJ/oJNbP855+qyD8rjIo27OMrVyRmQUyf4JOM4KojwZPHNsKv7Sl9gndLw9s7PjrKnLjZ23lnhaO8PGoVdV0e2dbHyyc4VH/tLFwJ3i4ic2toIz68fYuhyoenv71uHuyQDD4c4tcaf/5nzIv3UkYX8wY4WD2hypDgo2TJ9/1Mm4ovVJ+xux4wQpX/vYCeNp18uMoOrD4SL0XPHHh5JBS7rzoVB7ynNCbC/srMKwhfiQwfc+W5Yz7RNh7QZ3Z2GHq+XMSL8a/DEyPgRJliMNTWwc11i3BUxsLxg8grv/7Dl1Eg7rKKyv+s1Vo0srvREYx3Jz3+Q== root@localhost.localdomain'
# additionalTrustBundle的值为cat /opt/registry/certs/domain.crt ,注意格式,有两个空格
additionalTrustBundle: |-----BEGIN CERTIFICATE-----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-----END CERTIFICATE-----
# 如下信息直接替换 如上同步redhat官方registry到本地registry的输出内容里,找到这段直接替换以下所有内容
imageContentSources:
- mirrors:- reg.ocp1.abc.cn:5000/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-release
- mirrors:- reg.ocp1.abc.cn:5000/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
# 生成kubernetes集群的manfests
openshift-install create manifests --dir=/root/ocp1# 修改scheduler的配置清单,让其不往master节点上调度pod
vim /root/ocp1/manifests/cluster-scheduler-02-config.yml
# 其他不变只修改如下即可mastersSchedulable: False
# 生成ignition文件
openshift-install create ignition-configs --dir=/root/ocp1
ls /root/ocp1
# 为每个ocp节点生成单独的ignition文件
# 下载处理工具
wget https://raw.githubusercontent.com/ashcrow/filetranspiler/master/filetranspile
mv filetranspile /usr/bin
chmod a+x /usr/bin/filetranspile
# 安装工具依赖
yum install python3
pip3 install pyyamlcd /root/ocp1
# 创建各节点 生成ignition文件的工作目录,有几个节点创建几个
mkdir {bootstrap,master-1,master-2,master-3,node-1,node-2}
# 创建子目录
for i in bootstrap master-1 master-2 master-3 node-1 node-2;domkdir -p $i/etc/sysconfig/network-scripts
done
# 如下创建的文件所有目录都一样,自行处理下,内容根据各节点变动下即可,这里只示例bootstrap节点的配置
vim master-1/etc/chrony.conf
# 如果内网没ntp服务器则可以写互联网的,如果机器不能联网则自行搭建时间服务器
server 10.57.1.8 iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
local stratum 10
bindcmdaddress 0.0.0.0
keyfile /etc/chrony.keys
noclientlog
logchange 0.5
stratumweight 0.05
logdir /var/log/chrony# 主机名
echo "master-1.ocp1.abc.cn" > master-1/etc/hostname# dns配置
vim master-1/etc/resolv.conf
search abc.cn ocp1.abc.cn
nameserver 10.57.1.230# 网卡配置,coreos一般识别到的网卡名称为ens3或ens192,如果不确定的话可自行安装一个coreos 查看下
vim master-1/etc/sysconfig/network-scripts/ifcfg-ens3
NAME=ens3
DEVICE=ens3
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.57.1.229
NETMASK=255.255.255.0
GATEWAY=10.57.1.254
DNS1=10.57.1.230
DOMAIN=abc.com
PREFIX=22
DEFROUTE=yes
IPV6INIT=no# 生成各节点的ignition文件
filetranspile -i bootstrap.ign -f bootstrap -o bootstrap-static.ign
filetranspile -i master.ign -f master-1 -o master-1.ign
filetranspile -i master.ign -f master-2 -o master-2.ign
filetranspile -i master.ign -f master-3 -o master-3.ign
filetranspile -i worker.ign -f node-1 -o node-1.ign
filetranspile -i worker.ign -f node-2 -o node-2.ign
# 将上面生成好的ignition文件copy至http服务器的目录中提供http下载,目录之前创建好的为/data/soft_repository/ocp/igns
cp -avf bootstrap-static.ign /data/soft_repository/ocp/igns/
cp -avf master-1.ign /data/soft_repository/ocp/igns/
cp -avf master-2.ign /data/soft_repository/ocp/igns/
cp -avf master-3.ign /data/soft_repository/ocp/igns/
cp -avf node-1.ign /data/soft_repository/ocp/igns/
cp -avf node-2.ign /data/soft_repository/ocp/igns/

4.2.7,安装bootstrap节点

​ 接下来即将进入一个重要的一个环节,在裸机上安装 bootstrap节点

# rhcos-4.2.0-x86_64-installer.iso 安装系统的iso文件,在官网下载的
# 裸机是没有安装任何操作系统的服务器或虚拟机
# 如果是物理服务器的话就需要将如上iso文件刻录成光盘或者制作成可引导的usb设备
# 如果是kvm或vmware等虚拟机 则需要将如上iso文件上传到目标服务器的一个可被虚拟化软件识别的一个目录中,将其添加到虚拟机的虚拟光驱中,从而引导安装系统
# 如果是公有云或是私有云 则续把如上iso文件根据云平台要求创建iso模板或是怎样. 添加到云主机的虚拟光驱中去,而后引导安装系统
# 开始安装,安装过程中会对安装过程的内核参数进行修改,如下
# 根据各自的主机类型参照如上几种方法的提前准备iso文件及机器配置
# 这里使用的是虚拟机
# 添加虚拟机
# 设置虚拟机名称
# 设置内存大小,参考开头官方建议的配置
# 设置CPU核数
# 设置网络
# 添加光驱设备并关联iso
# 等等..
# 如上的步骤仅供参考
# 启动机器,到虚拟机控制台
# 看到Install RHEL CoreOS界面时,按tab键 进行内核参数修改
# tab后 直接在后面添加如下内容
# 如下内容在往控制台写的时候 要写为1行内容 用空格分开,这里是为了直观
# 切勿输入错误,如果错误重启重新输入吧
# 如果不确定磁盘是sda还是vda则安装一个系统看看即可
coreos.inst.install_dev=sda
coreos.inst.image_url=http://yum.ocp1.abc.cn/ocp/rhcos-4.2.0-x86_64-metal-bios.raw.gz 
coreos.inst.ignition_url=http://yum.ocp1.abc.cn/ocp/igns/bootstrap-static.ign
ip=10.57.1.229::10.57.1.254:255.255.255.0:bootstrap.ocp1.abc.cn::none 
nameserver=10.57.1.230
# 确认无误则回车
# 如果上述内容没有输入错误的话基本没有问题,安装好后会到登录界面,官方未提供账号密码的登录方式
# 需要到堡垒机上登录,上面我们创建的ssh的密钥,已经注入到ignition文件中,所以安装好直接可用用ssh密钥登录
# 在堡垒机登录 bootstrap节点,用户名为core
ssh core@bootstrap.ocp1.abc.cn
# 验证设置的IP及主机名和dns是否对称
...# 查看6443及22623端口是否监听
netstat -tnlp# 验证 bootstrap节点是否安装成功
sudo podman ps 
# 是否有etcd的容器# 查看bootkube的启动日志,此命令不要关闭.后续安装master节点时的log都会在此打印出来
journalctl -b -f -u bootkube.service 

4.2.8,安装master节点

# master节点也是裸机的方式,安装rhcos
# 创建所有master节点的虚拟机相关配置添加rhcos iso镜像到虚拟光驱
# 启动虚拟机
# 内核参数修改的内容与 bootstrap节点基本一致
# 其他master节点只需修改IP地址及主机名和ignition即可,这里只展示master-1节点的配置
coreos.inst.install_dev=sda
coreos.inst.image_url=http://yum.ocp1.abc.cn/ocp/rhcos-4.2.0-x86_64-metal-bios.raw.gz 
coreos.inst.ignition_url=http://yum.ocp1.abc.cn/ocp/igns/master-1.ign
ip=10.57.1.221::10.57.1.254:255.255.255.0:master-1.ocp1.abc.cn::none 
nameserver=10.57.1.230
# 确认无误则回车
# 需要注意的是 master节点安装好启动成功后过一会会再此重启
...
# 继续安装master-2 master-3# master节点都安装好后
# 在bootstrap节点上执行的journalctl -b -f -u bootkube.service  查看部署过程,发现有如下信息时即表明master节点已经部署成功,
# 接下来 bootstrap节点已经没有任何用处了.删除即可,以及在haproxy的配置文件中删除 bootstrap的后端
Dec 26 03:23:50 bootstrap.ocp1.abc.cn bootkube.sh[1629]: Tearing down temporary bootstrap control plane...
Dec 26 03:23:50 bootstrap.ocp1.abc.cn bootkube.sh[1629]: bootkube.service complete# 看到如上信息后在跳板机上执行,如下命令
openshift-install --dir=/root/ocp1 wait-for bootstrap-complete --log-level=debug

4.2.9,安装node节点

coreos.inst.install_dev=sda
coreos.inst.image_url=http://yum.ocp1.abc.cn/ocp/rhcos-4.2.0-x86_64-metal-bios.raw.gz 
coreos.inst.ignition_url=http://yum.ocp1.abc.cn/ocp/igns/node-1.ign
ip=10.57.1.241::10.57.1.254:255.255.255.0:master-1.ocp1.abc.cn::none 
nameserver=10.57.1.230
# 确认无误则回车
# 所以node节点安装成功后如下操作# 在堡垒机上添加oc及kubectl客户的配置文件
export KUBECONFIG=/root/ocp1/auth/kubeconfig
# node节点都部署完成后手动批准下node节点的kubelet证书
oc get csr 
# 查看到Pending状态的通过如下命令批准下
oc adm certificate approve xxxxxxx
# 快捷的批量批准方式
for i in `oc get csr|grep Pending| awk '{print $1}'`;do oc adm certificate approve $i;done

4.2.10,收尾工作

# 查看集群operators 状态
oc get clusteroperators
# 等待全部为True
# image-registry 为False是因为存储的原因,修改下存储卷类型即可 
# 这里只是用的本地目录作为存储卷使用,实际环境需要NAS或分布式文件系统分配pv pvc
oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'# 等待所有都为True后执行
openshift-install --dir=/root/ocp1  wait-for install-complete
...
INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/root/ocp1_ignition/auth/kubeconfig' 
INFO Access the OpenShift web-console here: https://console-openshift-console.apps.ocp1.abc.cn 
INFO Login to the console with user: kubeadmin, password: NofHz-RWRfP-em9sW-RI7Zb 
# 提示已经安装成功,控制台链接如上所示,登录的用户名密码也如上所示 kubeadmin/NofHz-RWRfP-em9sW-RI7Zb  保存起来
# web控制台域名为 https://console-openshift-console.apps.ocp1.abc.cn
# 需要访问的主机需要能够解析此域名
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 使用runc来启动容器

    runc简介 ​ RunC 是一个轻量级的工具,它是用来运行容器的,只用来做这一件事,并且这一件事要做好。我们可以认为它就是个命令行小工具,可以不用通过 docker 引擎,直接运行容器。事实上,runC 是标准化的产物,它根据 OCI 标准来创建和运行容器。而 OCI(Open Container …...

    2024/4/24 8:37:59
  2. Kubernetes 1.13二进制部署集群

    官方提供的几种Kubernetes部署方式 方式一:minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用。不能用于生产环境。官方地址:https://kubernetes.io/docs/setup/minikube/ 方式二:kubeadm Kubeadm也是一个工具,提…...

    2024/4/24 8:37:59
  3. CentOS7.3学习笔记总结(二)

    1.1、修改时区、时间在安装的时候如果选择中文安装,默认就是中国上海的时区,当然也可以在安装的时候调整,如果没有调整,我们现在说以下调整方法:查看当前时区的命令:timedatectl|grep "Time zone"显示内容:Time zone: Asia/Shanghai (CST, +0800)通过命令修改…...

    2024/5/8 18:34:33
  4. Linux挂载点介绍

    把Linux系统常用的各挂载点整理成表格,方便大家查阅! 如果图片看不清楚,可以下载到本地:链接: https://pan.baidu.com/s/1N2ZWtINC1DXZnWv9-EObOQ 提取码: prct 后记: 其实,Linux的目录结构并不是一定要死死按照这个结构来,只不过是一个最佳实践和推荐!毕竟Linux是一个…...

    2024/4/19 4:37:35
  5. kubernetes的 secret 存储配置

    kubernetes的 secret 存储配置 标签(空格分隔): kubernetes系列一: kubernetes的 secret 存储配置一: kubernetes的 secret 存储配置 1.1 Secret 存在意义 Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec 中。Secre…...

    2024/4/16 14:35:46
  6. MACOS上碰到 IOError: [Errno 30] Read-only file system

    最近一直在MACOS上重启之后就会碰到 IOError: [Errno 30] Read-only file system: 解决办法: sudo mount -uw /就可以了...

    2024/4/17 18:00:42
  7. 博客停止更新通知

    由于这次疫情在家,除了给自己充电以外,还把之前一直搁浅的事情做了,就是搭建一个属于自己的博客平台,之前做了一个框架出来,后来由于工作原因比较忙,也懒得搞了,直到最近一直闲在家里....... 个人新博客地址:https://liyanxin99.gitee.io/ 博客主页如下: 新博客平台搭…...

    2024/4/21 11:14:52
  8. 如何在zabbix执行远程主机的脚本或指令

    场景需求我们可以通过zabbix_server的web界面的脚本功能实现对已经安装了zabbix_agent主机实现远程关机而不用手动登陆然后输入关机指令我们可以通过zabbix_server的web界面的脚本功能实现某个服务的启动关闭和重启实验配置过程创建脚本打开zabbix_server的web配置界面,选择管…...

    2024/4/16 14:36:28
  9. centos7.4安装部署jumpserver(数据库外置)配置全过程--无问题

    一、jumpserver概述jumpserver是全球首款完全开源的堡垒机,使用Python/django进行开发,遵循GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal,交互美观,支持分布式架构,可以对多机房跨区域部署。jumpserver好比是…...

    2024/4/27 9:19:08
  10. redis-主从复制(sentinel)

    前言 redis的持久化功能在一定程度上保证了数据的安全性,即便时服务器宕机的情况下,也可以保证数据的丢失非常少,通常,为了避免服务的单点故障,会把数据复制到多个副本放在不同的服务器上,且这些拥有数据副本的服务器可以用于处理客户端的读请求,扩展整体的性能,下面将…...

    2024/4/20 14:21:10
  11. 进程和计划任务

    1、显示统计占用系统内存最多的进程,并排序。[root@centos7 ~]# ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head PID PPID CMD %MEM %CPU 4652 1 /usr/lib/polkit-1/polkitd - 0.7 5.3 5365 1 /usr/bin/python2 -Es /usr/s 0.3 0.0 4841…...

    2024/4/24 8:37:58
  12. redis集群:手动与自动

    手动创建: 环境描述:一台机器启动六个节点,3个主节点,3个从节点。安装:tar -zxvf redis-3.2.10.tar.gzmv redis-3.2.10 /usr/local/redisyum install gcc* tcl -ymake && make test修改配置文件:vi /usr/local/redis/redis.conf **要改的地方** daemonize yes po…...

    2024/4/24 8:37:57
  13. Kubernetes系列之Kubernetes资源管理

    Kubernetes系列之Kubernetes资源管理 Kubernetes 从创建之初的核心模块之一就是资源调度。想要在生产环境使用好 Kubernetes,必须对它的资源模型以及资源管理非常了解。这篇文章算是对散布在网络上的 Kubernetes 资源管理内容的一个总结。干货文章,强列推荐一读。 Kubernetes…...

    2024/4/24 8:37:59
  14. Kubernetes系列之Kubernetes存储卷

    第一章、前言 默认情况下容器的数据都是非持久化的, 在容器消亡以后数据也跟着丢失, 所以 Docker 提供了 Volume 机制以便将数据持久化存储。 类似的, Kubernetes 提供了更强大的 Volume 机制和丰富的插件, 解决了容器数据持久化和容器间共享数据的问题。与 Docker 不同, …...

    2024/4/29 2:39:25
  15. CentOS 8.1通过Web控制台Cockpit新建及管理KVM虚拟机

    CentOS 8.1最小化安装后,并没有安装Cockpit,这时你如果要想通过Web控制台Cockpit来管理KVM虚拟机,你就需要安装它,如何安装?你可以使用以下命令进行安装:#yum install cockpit安装好 cockpit,Web控制台默认情况下未启动,你使用以下命令启用它:#systemctl enable --now…...

    2024/4/24 5:14:19
  16. 相关视频教程

    frida逆向学习 https://github.com/haidragon/study_frida ios逆向学习 https://github.com/haidragon/study_tweak 漏洞利用学习 https://github.com/haidragon/study_exploits 执行文件学习 https://github.com/haidragon/study_executable_file_formats 计算机取证学习 http…...

    2024/4/24 8:37:53
  17. kubernetes的存储ConfigMap

    kubernetes的存储ConfigMap 标签(空格分隔): kubernetes系列一: kubernetes的存储ConfigMap一:kubernetes的存储 1.1 configMap 描述信息 ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配 置信息。ConfigMap API 给我…...

    2024/4/24 8:37:53
  18. CentOS7.3学习笔记总结(一)

    1.1、ip地址设置:配置文件路径:/etc/sysconfig/network-scripts/ifcfg-ens33修改内容:BOOTPROTO=dhcp 修改为:BOOTPROTO=staticONBOOT=no 修改为:ONBOOT=yes增加固定ip地址:IPADDR=10.41.*.*NETMASK=255.255.255.0GATEWAY=10.41.*.*启动或重启网卡服务:Service network…...

    2024/4/24 8:37:50
  19. k8s高可用环境部署-1.17.3版本

    准备 在开始部署 k8s 高可用集群时,请先参考k8s高可用环境部署系统准备 操作系统兼容性环境说明 集群部署前系统环境装备,请参考k8s高可用环境部署系统准备.md 本次高可用集群基本参照官网步骤进行部署,官网给出了两种拓扑结构:堆叠control plane node和external etcd nod…...

    2024/4/24 8:37:49
  20. Zabbix监控基本安装

    1. 安装硬件要求ip地址 硬件配置 主机名10.0.0.61 1CPU、1G内存 zabbix-server2. 安装步骤 (1)下载zabbix官方源 [root@zabbix-server /etc/yum.repos.d]# wget -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm wget到本地,方便…...

    2024/4/24 8:37:50

最新文章

  1. PMP考试没过怎么办?如何补考?(附复核流程)

    最近刷小红书,看很多人都在晒PMP通过的成绩截图,一方面为大家开心,终于拿到了期盼已久的PMP,但同时也有宝子发挥失常没通过考试,所以这期针对没考过的宝子们,出一期复盘文章,无论结果如何&#…...

    2024/5/8 19:11:30
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 【Redis】安装Redis后报ERR Client sent AUTH, but no password is set

    一、问题描述 安装Redis后使用auth验证是否安装成功(或者其它应用访问redis时报错),报ERR Client sent AUTH, but no password is set 127.0.0.1:6379> auth 123456 (error) ERR Client sent AUTH, but no password is set二、问题解决 …...

    2024/5/8 8:37:33
  4. 基于JSPM的美食推荐管理系统

    背景 互联网的迅猛扩张彻底转变了全球各类组织的运营模式。自20世纪90年代起,中国各级政府和企事业单位便开始探索运用网络系统来处理管理事务。然而,早期的网络覆盖不广、用户接受度不高、相关网络法规不健全以及技术发展不成熟等因素,都曾…...

    2024/5/6 6:55:25
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57