当前位置: 首页 > news >正文

wordpress建站 评测注册科技有限公司经营范围

wordpress建站 评测,注册科技有限公司经营范围,垂直网站怎么做,沈阳网站营销推广Openshift 4.4 静态 IP 离线安装系列#xff1a;初始安装 上篇文章准备了离线安装 OCP 所需要的离线资源#xff0c;包括安装镜像、所有样例 Image Stream 和 OperatorHub 中的所有 RedHat Operators。本文就开始正式安装 OCP#xff08;Openshift Container Platform…Openshift 4.4 静态 IP 离线安装系列初始安装 上篇文章准备了离线安装 OCP 所需要的离线资源包括安装镜像、所有样例 Image Stream 和 OperatorHub 中的所有 RedHat Operators。本文就开始正式安装 OCPOpenshift Container Platform 集群包括 DNS 解析、负载均衡配置、ignition 配置文件生成和集群部署。 OCP 安装期间需要用到多个文件安装配置文件、Kubernetes 部署清单、Ignition 配置文件包含了 machine types。安装配置文件将被转换为 Kubernetes 部署清单然后将清单包装到 Ignition 配置文件中。 安装程序使用这些 Ignition 配置文件来创建 Openshift 集群。运行安装程序时所有原始安装配置文件都会修改因此在安装之前应该先备份文件。 1. 安装过程 在安装 OCP 时我们需要有一台引导主机Bootstrap。这个主机可以访问所有的 OCP 节点。引导主机启动一个临时控制平面它启动 OCP 集群的其余部分然后被销毁。引导主机使用 Ignition 配置文件进行集群安装引导该文件描述了如何创建 OCP 集群。安装程序生成的 Ignition 配置文件包含 24 小时后过期的证书所以必须在证书过期之前完成集群安装。 引导集群安装包括如下步骤 引导主机启动并开始托管 Master 节点启动所需的资源。Master 节点从引导主机远程获取资源并完成引导。Master 节点通过引导主机构建 Etcd 集群。引导主机使用新的 Etcd 集群启动临时 Kubernetes 控制平面。临时控制平面在 Master 节点启动生成控制平面。临时控制平面关闭并将控制权传递给生产控制平面。引导主机将 OCP 组件注入生成控制平面。安装程序关闭引导主机。 引导安装过程完成以后OCP 集群部署完毕。然后集群开始下载并配置日常操作所需的其余组件包括创建计算节点、通过 Operator 安装其他服务等。 2. 准备服务器资源 服务器规划如下 三个控制平面节点安装 Etcd、控制平面组件和 Infras 基础组件。两个计算节点运行实际负载。一个引导主机执行安装任务集群部署完成后可删除。一个基础节点用于准备上节提到的离线资源同时用来部署 DNS 和负载均衡。一个镜像节点用来部署私有镜像仓库 Quay。 主机类型操作系统HostnamevCPU内存存储IPFQDN镜像节点RHEL 7.6registry48GB150GB192.168.57.70registry.openshift4.example.com基础节点RHEL 7.6bastion416GB120GB192.168.57.60bastion.openshift4.example.com引导主机RHCOSbootstrap416GB120GB192.168.57.61bootstrap.openshift4.example.com控制平面RHCOSmaster1416GB120GB192.168.57.62master1.openshift4.example.com控制平面RHCOSmaster2416GB120GB192.168.57.63master2.openshift4.example.com控制平面RHCOSmaster3416GB120GB192.168.57.64master3.openshift4.example.com计算节点RHCOS 或 RHEL 7.6worker128GB120GB192.168.57.65worker1.openshift4.example.com计算节点RHCOS 或 RHEL 7.6worker228GB120GB192.168.57.66worke2.openshift4.example.com 3. 防火墙配置 接下来看一下每个节点的端口号分配。 所有节点计算节点和控制平面之间需要开放的端口 协议端口作用ICMPN/A测试网络连通性TCP9000-9999节点的服务端口包括 node exporter 使用的 9100-9101 端口和 Cluster Version Operator 使用的 9099 端口 10250-10259Kubernetes 预留的默认端口 10256openshift-sdnUDP4789VXLAN 协议或 GENEVE 协议的通信端口 6081VXLAN 协议或 GENEVE 协议的通信端口 9000-9999节点的服务端口包括 node exporter 使用的 9100-9101 端口 30000-32767Kubernetes NodePort 控制平面需要向其他节点开放的端口 协议端口作用TCP2379-2380Etcd 服务端口 6443Kubernetes API 除此之外还要配置两个四层负载均衡器一个用来暴露集群 API一个用来暴露 Ingress 端口作用内部外部描述6443引导主机和控制平面使用。在引导主机初始化集群控制平面后需从负载均衡器中手动删除引导主机xxKubernetes API server22623引导主机和控制平面使用。在引导主机初始化集群控制平面后需从负载均衡器中手动删除引导主机 xMachine Config server443Ingress Controller 或 Router 使用xxHTTPS 流量80Ingress Controller 或 Router 使用xxHTTP 流量 4. 配置 DNS 按照官方文档使用 UPI 基础架构的 OCP 集群需要以下的 DNS 记录。在每条记录中cluster_name 是集群名称base_domain 是在 install-config.yaml 文件中指定的集群基本域如下表所示 组件DNS记录描述Kubernetes APIapi.cluster_name.base_domain.此 DNS 记录必须指向控制平面节点的负载均衡器。此记录必须可由集群外部的客户端和集群中的所有节点解析。 api-int.cluster_name.base_domain.此 DNS 记录必须指向控制平面节点的负载均衡器。此记录必须可由集群外部的客户端和集群中的所有节点解析。Routes*.apps.cluster_name.base_domain.DNS 通配符记录指向负载均衡器。这个负载均衡器的后端是 Ingress router 所在的节点默认是计算节点。此记录必须可由集群外部的客户端和集群中的所有节点解析。etcdetcd-index.cluster_name.base_domain.OCP 要求每个 etcd 实例的 DNS 记录指向运行实例的控制平面节点。etcd 实例由 值区分它们以 0 开头以 n-1 结束其中 n 是集群中控制平面节点的数量。集群中的所有节点必须都可以解析此记录。 _etcd-server-ssl._tcp.cluster_name.base_domain.因为 etcd 使用端口 2380 对外服务因此需要建立对应每台 etcd 节点的 SRV DNS 记录优先级 0权重 10 和端口 2380 DNS 服务的部署方法由很多种我当然推荐使用 CoreDNS毕竟云原生标配。由于这里需要添加 SRV 记录所以需要 CoreDNS 结合 etcd 插件使用。以下所有操作在基础节点上执行。 首先通过 yum 安装并启动 etcd $ yum install -y etcd $ systemctl enable etcd --now复制代码 然后下载 CoreDNS 二进制文件 $ wget https://github.com/coredns/coredns/releases/download/v1.6.9/coredns_1.6.9_linux_amd64.tgz $ tar zxvf coredns_1.6.9_linux_amd64.tgz $ mv coredns /usr/local/bin复制代码 创建 Systemd Unit 文件 $ cat /etc/systemd/system/coredns.service EOF [Unit] DescriptionCoreDNS DNS server Documentationhttps://coredns.io Afternetwork.target[Service] PermissionsStartOnlytrue LimitNOFILE1048576 LimitNPROC512 CapabilityBoundingSetCAP_NET_BIND_SERVICE AmbientCapabilitiesCAP_NET_BIND_SERVICE NoNewPrivilegestrue Usercoredns WorkingDirectory~ ExecStart/usr/local/bin/coredns -conf/etc/coredns/Corefile ExecReload/bin/kill -SIGUSR1 $MAINPID Restarton-failure[Install] WantedBymulti-user.target EOF复制代码 新建 coredns 用户 $ useradd coredns -s /sbin/nologin复制代码 新建 CoreDNS 配置文件 $ cat /etc/coredns/Corefile EOF .:53 { # 监听 TCP 和 UDP 的 53 端口template IN A apps.openshift4.example.com {match .*apps\.openshift4\.example\.com # 匹配请求 DNS 名称的正则表达式answer {{ .Name }} 60 IN A 192.168.57.60 # DNS 应答fallthrough}etcd { # 配置启用 etcd 插件,后面可以指定域名,例如 etcd test.com {path /skydns # etcd 里面的路径 默认为 /skydns以后所有的 dns 记录都存储在该路径下endpoint http://localhost:2379 # etcd 访问地址多个空格分开fallthrough # 如果区域匹配但不能生成记录则将请求传递给下一个插件# tls CERT KEY CACERT # 可选参数etcd 认证证书设置}prometheus # 监控插件cache 160loadbalance # 负载均衡开启 DNS 记录轮询策略forward . 192.168.57.1log # 打印日志 } EOF复制代码 其中 template 插件用来实现泛域名解析。 启动 CoreDNS 并设置开机自启 $ systemctl enable coredns --now复制代码 验证泛域名解析 $ dig short apps.openshift4.example.com 127.0.0.1 192.168.57.60$ dig short x.apps.openshift4.example.com 127.0.0.1 192.168.57.60复制代码 添加其余 DNS 记录 $ alias etcdctlv3ETCDCTL_API3 etcdctl $ etcdctlv3 put /skydns/com/example/openshift4/api {host:192.168.57.60,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/api-int {host:192.168.57.60,ttl:60}$ etcdctlv3 put /skydns/com/example/openshift4/etcd-0 {host:192.168.57.62,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/etcd-1 {host:192.168.57.63,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/etcd-2 {host:192.168.57.64,ttl:60}$ etcdctlv3 put /skydns/com/example/openshift4/_tcp/_etcd-server-ssl/x1 {host:etcd-0.openshift4.example.com,ttl:60,priority:0,weight:10,port:2380} $ etcdctlv3 put /skydns/com/example/openshift4/_tcp/_etcd-server-ssl/x2 {host:etcd-1.openshift4.example.com,ttl:60,priority:0,weight:10,port:2380} $ etcdctlv3 put /skydns/com/example/openshift4/_tcp/_etcd-server-ssl/x3 {host:etcd-2.openshift4.example.com,ttl:60,priority:0,weight:10,port:2380}# 除此之外再添加各节点主机名记录 $ etcdctlv3 put /skydns/com/example/openshift4/bootstrap {host:192.168.57.61,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/master1 {host:192.168.57.62,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/master2 {host:192.168.57.63,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/master3 {host:192.168.57.64,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/worker1 {host:192.168.57.65,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/worker2 {host:192.168.57.66,ttl:60} $ etcdctlv3 put /skydns/com/example/openshift4/registry {host:192.168.57.70,ttl:60}复制代码 验证 DNS 解析 $ yum install -y bind-utils $ dig short api.openshift4.example.com 127.0.0.1 192.168.57.60$ dig short api-int.openshift4.example.com 127.0.0.1 192.168.57.60$ dig short etcd-0.openshift4.example.com 127.0.0.1 192.168.57.62 $ dig short etcd-1.openshift4.example.com 127.0.0.1 192.168.57.63 $ dig short etcd-2.openshift4.example.com 127.0.0.1 192.168.57.64$ dig short -t SRV _etcd-server-ssl._tcp.openshift4.example.com 127.0.0.1 10 33 2380 etcd-0.openshift4.example.com. 10 33 2380 etcd-1.openshift4.example.com. 10 33 2380 etcd-2.openshift4.example.com.$ dig short bootstrap.openshift4.example.com 127.0.0.1 192.168.57.61 $ dig short master1.openshift4.example.com 127.0.0.1 192.168.57.62 $ dig short master2.openshift4.example.com 127.0.0.1 192.168.57.63 $ dig short master3.openshift4.example.com 127.0.0.1 192.168.57.64 $ dig short worker1.openshift4.example.com 127.0.0.1 192.168.57.65 $ dig short worker2.openshift4.example.com 127.0.0.1 192.168.57.66复制代码 5. 配置负载均衡 负载均衡我选择使用 Envoy先准备配置文件 Bootstrap # /etc/envoy/envoy.yaml node:id: node0cluster: cluster0 dynamic_resources:lds_config:path: /etc/envoy/lds.yamlcds_config:path: /etc/envoy/cds.yaml admin:access_log_path: /dev/stdoutaddress:socket_address:address: 0.0.0.0port_value: 15001复制代码 LDS # /etc/envoy/lds.yaml version_info: 0 resources: - type: type.googleapis.com/envoy.config.listener.v3.Listenername: listener_openshift-api-serveraddress:socket_address:address: 0.0.0.0port_value: 6443filter_chains:- filters:- name: envoy.tcp_proxytyped_config:type: type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxystat_prefix: openshift-api-servercluster: openshift-api-serveraccess_log:name: envoy.access_loggers.filetyped_config:type: type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLogpath: /dev/stdout - type: type.googleapis.com/envoy.config.listener.v3.Listenername: listener_machine-config-serveraddress:socket_address:address: ::ipv4_compat: trueport_value: 22623filter_chains:- filters:- name: envoy.tcp_proxytyped_config:type: type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxystat_prefix: machine-config-servercluster: machine-config-serveraccess_log:name: envoy.access_loggers.filetyped_config:type: type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLogpath: /dev/stdout - type: type.googleapis.com/envoy.config.listener.v3.Listenername: listener_ingress-httpaddress:socket_address:address: ::ipv4_compat: trueport_value: 80filter_chains:- filters:- name: envoy.tcp_proxytyped_config:type: type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxystat_prefix: ingress-httpcluster: ingress-httpaccess_log:name: envoy.access_loggers.filetyped_config:type: type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLogpath: /dev/stdout - type: type.googleapis.com/envoy.config.listener.v3.Listenername: listener_ingress-httpsaddress:socket_address:address: ::ipv4_compat: trueport_value: 443filter_chains:- filters:- name: envoy.tcp_proxytyped_config:type: type.googleapis.com/envoy.extensions.filters.network.tcp_proxy.v3.TcpProxystat_prefix: ingress-httpscluster: ingress-httpsaccess_log:name: envoy.access_loggers.filetyped_config:type: type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLogpath: /dev/stdout复制代码 CDS # /etc/envoy/cds.yaml version_info: 0 resources: - type: type.googleapis.com/envoy.config.cluster.v3.Clustername: openshift-api-serverconnect_timeout: 1stype: strict_dnsdns_lookup_family: V4_ONLYlb_policy: ROUND_ROBINload_assignment:cluster_name: openshift-api-serverendpoints:- lb_endpoints:- endpoint:address:socket_address:address: 192.168.57.61port_value: 6443- endpoint:address:socket_address:address: 192.168.57.62port_value: 6443- endpoint:address:socket_address:address: 192.168.57.63port_value: 6443- endpoint:address:socket_address:address: 192.168.57.64port_value: 6443 - type: type.googleapis.com/envoy.config.cluster.v3.Clustername: machine-config-serverconnect_timeout: 1stype: strict_dnsdns_lookup_family: V4_ONLYlb_policy: ROUND_ROBINload_assignment:cluster_name: machine-config-serverendpoints:- lb_endpoints:- endpoint:address:socket_address:address: 192.168.57.61port_value: 22623- endpoint:address:socket_address:address: 192.168.57.62port_value: 22623- endpoint:address:socket_address:address: 192.168.57.63port_value: 22623- endpoint:address:socket_address:address: 192.168.57.64port_value: 22623 - type: type.googleapis.com/envoy.config.cluster.v3.Clustername: ingress-httpconnect_timeout: 1stype: strict_dnsdns_lookup_family: V4_ONLYlb_policy: ROUND_ROBINload_assignment:cluster_name: ingress-httpendpoints:- lb_endpoints:- endpoint:address:socket_address:address: 192.168.57.65port_value: 80- endpoint:address:socket_address:address: 192.168.57.66port_value: 80 - type: type.googleapis.com/envoy.config.cluster.v3.Clustername: ingress-httpsconnect_timeout: 1stype: strict_dnsdns_lookup_family: V4_ONLYlb_policy: ROUND_ROBINload_assignment:cluster_name: ingress-httpsendpoints:- lb_endpoints:- endpoint:address:socket_address:address: 192.168.57.65port_value: 443- endpoint:address:socket_address:address: 192.168.57.66port_value: 443复制代码 配置看不懂的去看我的电子书Envoy 中文指南 启动 Envoy $ podman run -d --restartalways --name envoy --net host -v /etc/envoy:/etc/envoy envoyproxy/envoy复制代码 6. 安装准备 生成 SSH 私钥并将其添加到 agent 在安装过程中我们会在基础节点上执行 OCP 安装调试和灾难恢复因此必须在基础节点上配置 SSH keyssh-agent 将会用它来执行安装程序。 基础节点上的 core 用户可以使用该私钥登录到 Master 节点。部署集群时该私钥会被添加到 core 用户的 ~/.ssh/authorized_keys 列表中。 密钥创建步骤如下 ① 创建无密码验证的 SSH key $ ssh-keygen -t rsa -b 4096 -N -f ~/.ssh/new_rsa复制代码 ② 启动 ssh-agent 进程作为后台任务 $ eval $(ssh-agent -s)复制代码 ③ 将 SSH 私钥添加到 ssh-agent $ ssh-add ~/.ssh/new_rsa复制代码 后续集群安装过程中有一步会提示输入 SSH public key届时使用前面创建的公钥 new_rsa.pub 就可以了。 获取安装程序 如果是在线安装还需要在基础节点上下载安装程序。但这里是离线安装安装程序在上篇文章中已经被提取出来了所以不需要再下载。 创建安装配置文件 首先创建一个安装目录用来存储安装所需要的文件 $ mkdir /ocpinstall复制代码 自定义 install-config.yaml 并将其保存在 /ocpinstall 目录中。配置文件必须命名为 install-config.yaml。配置文件内容 apiVersion: v1 baseDomain: example.com compute: - hyperthreading: Enabledname: workerreplicas: 0 controlPlane:hyperthreading: Enabledname: masterreplicas: 3 metadata:name: openshift4 networking:clusterNetwork:- cidr: 10.128.0.0/14hostPrefix: 23networkType: OpenShiftSDNserviceNetwork:- 172.30.0.0/16 platform:none: {} fips: false pullSecret: {auths: ...} sshKey: ssh-rsa ... additionalTrustBundle: |-----BEGIN CERTIFICATE-----省略注意这里要前面空两格-----END CERTIFICATE----- imageContentSources: - mirrors:- registry.openshift4.example.com/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-release - mirrors:- registry.openshift4.example.com/ocp4/openshift4source: quay.io/openshift-release-dev/ocp-v4.0-art-dev复制代码 baseDomain : 所有 Openshift 内部的 DNS 记录必须是此基础的子域并包含集群名称。compute : 计算节点配置。这是一个数组每一个元素必须以连字符 - 开头。hyperthreading : Enabled 表示启用同步多线程或超线程。默认启用同步多线程可以提高机器内核的性能。如果要禁用则控制平面和计算节点都要禁用。compute.replicas : 计算节点数量。因为我们要手动创建计算节点所以这里要设置为 0。controlPlane.replicas : 控制平面节点数量。控制平面节点数量必须和 etcd 节点数量一致为了实现高可用本文设置为 3。metadata.name : 集群名称。即前面 DNS 记录中的 cluster_name。cidr : 定义了分配 Pod IP 的 IP 地址段不能和物理网络重叠。hostPrefix : 分配给每个节点的子网前缀长度。例如如果将 hostPrefix 设置为 23则为每一个节点分配一个给定 cidr 的 /23 子网允许 $510 (2^{32 - 23} - 2)$ 个 Pod IP 地址。serviceNetwork : Service IP 的地址池只能设置一个。pullSecret : 上篇文章使用的 pull secret可通过命令 cat /root/pull-secret.json|jq -c 来压缩成一行。sshKey : 上面创建的公钥可通过命令 cat ~/.ssh/new_rsa.pub 查看。additionalTrustBundle : 私有镜像仓库 Quay 的信任证书可在镜像节点上通过命令 cat /data/quay/config/ssl.cert 查看。imageContentSources : 来自前面 oc adm release mirror 的输出结果。 备份安装配置文件便于以后重复使用 $ cd /ocpinstall $ cp install-config.yaml install-config.yaml.20200604复制代码 创建 Kubernetes 部署清单 创建 Kubernetes 部署清单后 install-config.yaml 将被删除请务必先备份此文件 创建 Kubernetes 部署清单文件 $ openshift-install create manifests --dir/ocpinstall复制代码 修改 manifests/cluster-scheduler-02-config.yml 文件将 mastersSchedulable 的值设为 flase以防止 Pod 调度到控制节点。 创建 Ignition 配置文件 创建 Ignition 配置文件后 install-config.yaml 将被删除请务必先备份此文件 $ cp install-config.yaml.20200604 install-config.yaml $ openshift-install create ignition-configs --dir/ocpinstall复制代码 生成的文件 ├── auth │   ├── kubeadmin-password │   └── kubeconfig ├── bootstrap.ign ├── master.ign ├── metadata.json └── worker.ign复制代码 准备一个 HTTP 服务这里选择使用 Nginx $ yum install -y nginx复制代码 修改 Nginx 的配置文件 /etc/nginx/nginx/.conf将端口改为 8080因为负载均衡器已经占用了 80 端口。然后启动 Nginx 服务 $ systemctl enable nginx --now复制代码 将 Ignition 配置文件拷贝到 HTTP 服务的 ignition 目录 $ mkdir /usr/share/nginx/html/ignition $ cp -r *.ign /usr/share/nginx/html/ignition/复制代码 获取 RHCOS 的 BIOS 文件 下载用于裸机安装的 BIOS 文件并上传到 Nginx 的目录 $ mkdir /usr/share/nginx/html/install $ wget https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.4/latest/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz -O /usr/share/nginx/html/install/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz复制代码 获取 RHCOS 的 ISO 文件 本地下载 RHCOS 的 ISO 文件mirror.openshift.com/pub/openshi…然后上传到 vSphere。步骤如下 ① 首先登陆 vSphere然后点击『存储』。  ② 选择一个『数据存储』然后在右边的窗口中选择『上载文件』。 ③ 选择刚刚下载的 ISO 文件上传到 ESXI 主机。 7. 安装集群 Bootstrap 最后开始正式安装集群先创建 bootstrap 节点虚拟机操作系统选择『Red Hat Enterprise Linux 7 (64-Bit)』并挂载之前上传的 ISO按照之前的表格设置 CPU 、内存和硬盘打开电源然后按照下面的步骤操作 ① 在 RHCOS Installer 安装界面按 Tab 键进入引导参数配置选项。 ② 在默认选项 coreos.inst yes 之后添加由于无法拷贝粘贴请输入仔细核对后再回车进行 ip192.168.57.61::192.168.57.1:255.255.255.0:bootstrap.openshift4.example.com:ens192:none nameserver192.168.57.60 coreos.inst.install_devsda coreos.inst.image_urlhttp://192.168.57.60:8080/install/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz coreos.inst.ignition_urlhttp://192.168.57.60:8080/ignition/bootstrap.ign 复制代码 其中 ip... 的含义为 ip$IPADDRESS::$DEFAULTGW:$NETMASK:$HOSTNAMEFQDN:$IFACE:none。 如图所示 ③ 如果安装有问题会进入 emergency shell检查网络、域名解析是否正常如果正常一般是以上参数输入有误reboot 退出 shell 回到第一步重新开始。 安装成功后从基础节点通过命令 ssh -i ~/.ssh/new_rsa core192.168.57.61 登录 bootstrap 节点然后验证 网络配置是否符合自己的设定 hostnameip routecat /etc/resolv.conf验证是否成功启动 bootstrap 相应服务 podman ps 查看服务是否以容器方式运行使用 ss -tulnp 查看 6443 和 22623 端口是否启用。 这里简单介绍一下 bootstrap 节点的启动流程它会先通过 podman 跑一些容器然后在容器里面启动临时控制平面这个临时控制平面是通过 CRIO 跑在容器里的有点绕。。直接看命令 $ podman ps -a --no-trunc --sort created --format {{.Command}}start --tear-down-earlyfalse --asset-dir/assets --required-podsopenshift-kube-apiserver/kube-apiserver,openshift-kube-scheduler/openshift-kube-scheduler,openshift-kube-controller-manager/kube-controller-manager,openshift-cluster-version/cluster-version-operator /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml render --dest-dir/assets/cco-bootstrap --cloud-credential-operator-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:244ab9d0fcf7315eb5c399bd3fa7c2e662cf23f87f625757b13f415d484621c3 bootstrap --etcd-ca/assets/tls/etcd-ca-bundle.crt --etcd-metric-ca/assets/tls/etcd-metric-ca-bundle.crt --root-ca/assets/tls/root-ca.crt --kube-ca/assets/tls/kube-apiserver-complete-client-ca-bundle.crt --config-file/assets/manifests/cluster-config.yaml --dest-dir/assets/mco-bootstrap --pull-secret/assets/manifests/openshift-config-secret-pull-secret.yaml --etcd-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:aba3c59eb6d088d61b268f83b034230b3396ce67da4f6f6d49201e55efebc6b2 --kube-client-agent-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:8eb481214103d8e0b5fe982ffd682f838b969c8ff7d4f3ed4f83d4a444fb841b --machine-config-operator-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:31dfdca3584982ed5a82d3017322b7d65a491ab25080c427f3f07d9ce93c52e2 --machine-config-oscontent-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:b397960b7cc14c2e2603111b7385c6e8e4b0f683f9873cd9252a789175e5c4e1 --infra-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:d7862a735f492a18cb127742b5c2252281aa8f3bd92189176dd46ae9620ee68a --keepalived-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:a882a11b55b2fc41b538b59bf5db8e4cfc47c537890e4906fe6bf22f9da75575 --coredns-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:b25b8b2219e8c247c088af93e833c9ac390bc63459955e131d89b77c485d144d --mdns-publisher-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:dea1fcb456eae4aabdf5d2d5c537a968a2dafc3da52fe20e8d99a176fccaabce --haproxy-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:7064737dd9d0a43de7a87a094487ab4d7b9e666675c53cf4806d1c9279bd6c2e --baremetal-runtimecfg-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:715bc48eda04afc06827189883451958d8940ed8ab6dd491f602611fe98a6fba --cloud-config-file/assets/manifests/cloud-provider-config.yaml --cluster-etcd-operator-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:9f7a02df3a5d91326d95e444e2e249f8205632ae986d6dccc7f007ec65c8af77 render --prefixcluster-ingress- --output-dir/assets/ingress-operator-manifests /usr/bin/cluster-kube-scheduler-operator render --manifest-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:187b9d29fea1bde9f1785584b4a7bbf9a0b9f93e1323d92d138e61c861b6286c --asset-input-dir/assets/tls --asset-output-dir/assets/kube-scheduler-bootstrap --config-output-file/assets/kube-scheduler-bootstrap/config /usr/bin/cluster-kube-controller-manager-operator render --manifest-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:187b9d29fea1bde9f1785584b4a7bbf9a0b9f93e1323d92d138e61c861b6286c --asset-input-dir/assets/tls --asset-output-dir/assets/kube-controller-manager-bootstrap --config-output-file/assets/kube-controller-manager-bootstrap/config --cluster-config-file/assets/manifests/cluster-network-02-config.yml /usr/bin/cluster-kube-apiserver-operator render --manifest-etcd-serving-caetcd-ca-bundle.crt --manifest-etcd-server-urlshttps://localhost:2379 --manifest-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:187b9d29fea1bde9f1785584b4a7bbf9a0b9f93e1323d92d138e61c861b6286c --manifest-operator-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:718ca346d5499cccb4de98c1f858c9a9a13bbf429624226f466c3ee2c14ebf40 --asset-input-dir/assets/tls --asset-output-dir/assets/kube-apiserver-bootstrap --config-output-file/assets/kube-apiserver-bootstrap/config --cluster-config-file/assets/manifests/cluster-network-02-config.yml /usr/bin/cluster-config-operator render --config-output-file/assets/config-bootstrap/config --asset-input-dir/assets/tls --asset-output-dir/assets/config-bootstrap /usr/bin/cluster-etcd-operator render --etcd-ca/assets/tls/etcd-ca-bundle.crt --etcd-metric-ca/assets/tls/etcd-metric-ca-bundle.crt --manifest-etcd-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:aba3c59eb6d088d61b268f83b034230b3396ce67da4f6f6d49201e55efebc6b2 --etcd-discovery-domaintest.example.com --manifest-cluster-etcd-operator-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:9f7a02df3a5d91326d95e444e2e249f8205632ae986d6dccc7f007ec65c8af77 --manifest-setup-etcd-env-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:31dfdca3584982ed5a82d3017322b7d65a491ab25080c427f3f07d9ce93c52e2 --manifest-kube-client-agent-imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:8eb481214103d8e0b5fe982ffd682f838b969c8ff7d4f3ed4f83d4a444fb841b --asset-input-dir/assets/tls --asset-output-dir/assets/etcd-bootstrap --config-output-file/assets/etcd-bootstrap/config --cluster-config-file/assets/manifests/cluster-network-02-config.yml render --output-dir/assets/cvo-bootstrap --release-imageregistry.openshift4.example.com/ocp4/openshift4sha256:4a461dc23a9d323c8bd7a8631bed078a9e5eec690ce073f78b645c83fb4cdf74 /usr/bin/grep -oP Managed /manifests/0000_12_etcd-operator_01_operator.cr.yaml复制代码 $ crictl podsPOD ID CREATED STATE NAME NAMESPACE ATTEMPT 17a978b9e7b1e 3 minutes ago Ready bootstrap-kube-apiserver-bootstrap.openshift4.example.com kube-system 24 8a0f79f38787a 3 minutes ago Ready bootstrap-kube-scheduler-bootstrap.openshift4.example.com kube-system 4 1a707da797173 3 minutes ago Ready bootstrap-kube-controller-manager-bootstrap.openshift4.example.com kube-system 4 0461d2caa2753 3 minutes ago Ready cloud-credential-operator-bootstrap.openshift4.example.com openshift-cloud-credential-operator 4 ab6519286f65a 3 minutes ago Ready bootstrap-cluster-version-operator-bootstrap.openshift4.example.com openshift-cluster-version 2 457a7a46ec486 8 hours ago Ready bootstrap-machine-config-operator-bootstrap.openshift4.example.com default 0 e4df49b4d36a1 8 hours ago Ready etcd-bootstrap-member-bootstrap.openshift4.example.com openshift-etcd 0复制代码 如果验证无问题则可以一边继续下面的步骤一边观察日志journalctl -b -f -u bootkube.service RHCOS 的默认用户是 core如果想获取 root 权限可以执行命令 sudo su不需要输入密码。 Master 控制节点和之前类似先创建虚拟机然后修改引导参数引导参数调整为 ip192.168.57.62::192.168.57.1:255.255.255.0:master1.openshift4.example.com:ens192:none nameserver192.168.57.60 coreos.inst.install_devsda coreos.inst.image_urlhttp://192.168.57.60:8080/install/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz coreos.inst.ignition_urlhttp://192.168.57.60:8080/ignition/master.ign 复制代码 控制节点安装成功后会重启一次之后同样可以从基础节点通过 SSH 密钥登录。 然后重复相同的步骤创建其他两台控制节点注意修改引导参数IP 和主机名。先不急着创建计算节点先在基础节点执行以下命令完成生产控制平面的创建 $ openshift-install --dir/ocpinstall wait-for bootstrap-complete --log-leveldebugDEBUG OpenShift Installer 4.4.5 DEBUG Built from commit 15eac3785998a5bc250c9f72101a4a9cb767e494 INFO Waiting up to 20m0s for the Kubernetes API at https://api.openshift4.example.com:6443... INFO API v1.17.1 up INFO Waiting up to 40m0s for bootstrapping to complete... DEBUG Bootstrap status: complete INFO It is now safe to remove the bootstrap resources复制代码 待出现 It is now safe to remove the bootstrap resources 提示之后从负载均衡器中删除引导主机本文使用的是 Envoy只需从 cds.yaml 中删除引导主机的 endpoint然后重新加载就好了。 观察引导节点的日志 $ journalctl -b -f -u bootkube.service... Jun 05 00:24:12 bootstrap.openshift4.example.com bootkube.sh[12571]: I0605 00:24:12.108179 1 waitforceo.go:67] waiting on condition EtcdRunningInCluster in etcd CR /cluster to be True. Jun 05 00:24:21 bootstrap.openshift4.example.com bootkube.sh[12571]: I0605 00:24:21.595680 1 waitforceo.go:67] waiting on condition EtcdRunningInCluster in etcd CR /cluster to be True. Jun 05 00:24:26 bootstrap.openshift4.example.com bootkube.sh[12571]: I0605 00:24:26.250214 1 waitforceo.go:67] waiting on condition EtcdRunningInCluster in etcd CR /cluster to be True. Jun 05 00:24:26 bootstrap.openshift4.example.com bootkube.sh[12571]: I0605 00:24:26.306421 1 waitforceo.go:67] waiting on condition EtcdRunningInCluster in etcd CR /cluster to be True. Jun 05 00:24:29 bootstrap.openshift4.example.com bootkube.sh[12571]: I0605 00:24:29.097072 1 waitforceo.go:64] Cluster etcd operator bootstrapped successfully Jun 05 00:24:29 bootstrap.openshift4.example.com bootkube.sh[12571]: I0605 00:24:29.097306 1 waitforceo.go:58] cluster-etcd-operator bootstrap etcd Jun 05 00:24:29 bootstrap.openshift4.example.com podman[16531]: 2020-06-05 00:24:29.120864426 0000 UTC m17.965364064 container died 77971b6ca31755a89b279fab6f9c04828c4614161c2e678c7cba48348e684517 (imagequay.io/openshift-release-dev/ocp-v4.0-art-devsha256:9f7a02df3a5d91326d95e444e2e249f8205632ae986d6dccc7f007ec65c8af77, namerecursing_cerf) Jun 05 00:24:29 bootstrap.openshift4.example.com bootkube.sh[12571]: bootkube.service complete复制代码 Worker 计算节点和之前类似先创建虚拟机然后修改引导参数引导参数调整为 ip192.168.57.65::192.168.57.1:255.255.255.0:worker1.openshift4.example.com:ens192:none nameserver192.168.57.60 coreos.inst.install_devsda coreos.inst.image_urlhttp://192.168.57.60:8080/install/rhcos-4.4.3-x86_64-metal.x86_64.raw.gz coreos.inst.ignition_urlhttp://192.168.57.60:8080/ignition/worker.ign 复制代码 计算节点安装成功后也会重启一次之后同样可以从基础节点通过 SSH 密钥登录。 然后重复相同的步骤创建其他计算节点注意修改引导参数IP 和主机名。 登录集群 可以通过导出集群 kubeconfig 文件以默认系统用户身份登录到集群。kubeconfig 文件包含有关 CLI 用于将客户端连接到正确的集群和 API Server 的集群信息该文件在 OCP 安装期间被创建。 $ mkdir ~/.kube $ cp /ocpinstall/auth/kubeconfig ~/.kube/config $ oc whoami system:admin复制代码 批准 CSR 将节点添加到集群时会为添加的每台节点生成两个待处理证书签名请求CSR。必须确认这些 CSR 已获得批准或者在必要时自行批准。 $ oc get nodeNAME STATUS ROLES AGE VERSION master1.openshift4.example.com Ready master,worker 6h25m v1.17.1 master2.openshift4.example.com Ready master,worker 6h39m v1.17.1 master3.openshift4.example.com Ready master,worker 6h15m v1.17.1 worker1.openshift4.example.com NotReady worker 5h8m v1.17.1 worker2.openshift4.example.com NotReady worker 5h9m v1.17.1复制代码 输出列出了创建的所有节点。查看挂起的证书签名请求CSR并确保添加到集群的每台节点都能看到具有 Pending 或 Approved 状态的客户端和服务端请求。针对 Pending 状态的 CSR 批准请求 $ oc adm certificate approve xxx复制代码 或者执行以下命令批准所有 CSR $ oc get csr -ojson | jq -r .items[] | select(.status {} ) | .metadata.name | xargs oc adm certificate approve复制代码 Operator 自动初始化 控制平面初始化后需要确认所有的 Operator 都处于可用的状态即确认所有 Operator 的 Available 字段值皆为 True $ oc get clusteroperatorsNAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE authentication 4.4.5 True False False 150m cloud-credential 4.4.5 True False False 7h7m cluster-autoscaler 4.4.5 True False False 6h12m console 4.4.5 True False False 150m csi-snapshot-controller 4.4.5 True False False 6h13m dns 4.4.5 True False False 6h37m etcd 4.4.5 True False False 6h19m image-registry 4.4.5 True False False 6h12m ingress 4.4.5 True False False 150m insights 4.4.5 True False False 6h13m kube-apiserver 4.4.5 True False False 6h15m kube-controller-manager 4.4.5 True False False 6h36m kube-scheduler 4.4.5 True False False 6h36m kube-storage-version-migrator 4.4.5 True False False 6h36m machine-api 4.4.5 True False False 6h37m machine-config 4.4.5 True False False 6h36m marketplace 4.4.5 True False False 6h12m monitoring 4.4.5 True False False 6h6m network 4.4.5 True False False 6h39m node-tuning 4.4.5 True False False 6h38m openshift-apiserver 4.4.5 True False False 6h14m openshift-controller-manager 4.4.5 True False False 6h12m openshift-samples 4.4.5 True False False 6h11m operator-lifecycle-manager 4.4.5 True False False 6h37m operator-lifecycle-manager-catalog 4.4.5 True False False 6h37m operator-lifecycle-manager-packageserver 4.4.5 True False False 6h15m service-ca 4.4.5 True False False 6h38m service-catalog-apiserver 4.4.5 True False False 6h38m service-catalog-controller-manager 4.4.5 True False False 6h39m storage 4.4.5 True False False 6h12m复制代码 如果 Operator 不正常需要进行问题诊断和修复。 完成安装 最后一步完成集群的安装执行以下命令 $ openshift-install --dir/ocpinstall wait-for install-complete --log-leveldebug复制代码 注意最后提示访问 Web Console 的网址及用户密码。如果密码忘了也没关系可以查看文件 /ocpinstall/auth/kubeadmin-password 来获得密码。 本地访问 Web Console需要添加 hosts 192.168.57.60 console-openshift-console.apps.openshift4.example.com 192.168.57.60 oauth-openshift.apps.openshift4.example.com复制代码 浏览器访问 https://console-openshift-console.apps.openshift4.example.com输入上面输出的用户名密码登录。首次登录后会提示 You are logged in as a temporary administrative user. Update the Cluster OAuth configuration to allow others to log in.复制代码 我们可以通过 htpasswd 自定义管理员账号步骤如下 ① htpasswd -c -B -b users.htpasswd admin xxxxx ② 将 users.htpasswd 文件下载到本地。 ③ 在 Web Console 页面打开 Global Configuration 然后找到 OAuth点击进入然后添加 HTPasswd 类型的 Identity Providers并上传 users.htpasswd 文件。 ④ 退出当前用户注意要退出到如下界面 选择 htpasswd然后输入之前创建的用户名密码登录。 如果退出后出现的就是用户密码输入窗口实际还是 kube:admin 的校验如果未出现如上提示可以手动输入 Web Console 地址来自动跳转。 ⑤ 登录后貌似能看到 Administrator 菜单项但访问如 OAuth Details 仍然提示 oauths.config.openshift.io cluster is forbidden: User admin cannot get resource oauths in API group config.openshift.io at the cluster scope复制代码 因此需要授予集群管理员权限 $ oc adm policy add-cluster-role-to-user cluster-admin admin复制代码 Web Console 部分截图 如果想删除默认账号可以执行以下命令 $ oc -n kube-system delete secrets kubeadmin
http://www.pierceye.com/news/366878/

相关文章:

  • 建设网站制作汉狮团队义乌北苑编程网站开发公司
  • 网站开发公司会计处理滨州市住房和城乡建设局网站
  • 企业网站站内优化长尾关键词挖掘站长工具
  • 山东平台网站建设企业怎么做自己的品牌网站
  • 长沙seo网站排名杭州网站建设q479185700棒
  • 泰州网站建设搭建工程造价网
  • 网站流程优化c2c模式举例子
  • 帝国网站调用图片集网店平台有哪些
  • 做flash音乐网站的开题报告删除wordpress左上角
  • php网站开发学什么衡水大型网站建设
  • 广州网站开发软件平台wordpress 问号
  • 西安市建设干部学校网站厦门网站优化服务
  • 深圳市南山区住房和建设局官方网站如何把html网站改为asp网站
  • 网站建设有什么技术做dw网站图片怎么下载地址
  • 初中生如何做网站潍坊网站开发
  • 如何修改用织梦做的网站的模板价格对比网站开发
  • 单位建设网站的作用意义家在深圳坂田业主论坛
  • 网站什么时候备案好宜昌网站建设
  • 那个网站可以查询美做空基金竹中建设官方网站
  • 做直播网站找哪个网站网站平台推广方法
  • 查工程中标信息哪个网站成都网站建设 致尚
  • 做硅胶的网站wordpress googleapis
  • 做网站 简单外包常见的管理信息系统有哪些
  • 做网站一万静海网站开发
  • 视频模板在线制作网站空客德国公司
  • 如何编程制作自己的网站献县做网站价格
  • 成都网站品牌设计设计教育培训
  • 无代码做网站wordpress添加模板后台显示
  • 中山做网站费用国内做网站好的公司
  • 搬瓦工putty做网站建设网站证书