OpenShift容器中读取Project信息
背景在日常运维管理中,经常需要获取OpenShift集群资源的信息,甚至创建、编辑或删除资源。我们都很清楚,使用oc命令就能够非常方便地完成这些操作。但是有时,我们希望通过调用接口来实现,以便于与其它组件或者应用进行集成。那么我们该如何做呢?本篇就以读取Project信息为例,展示如何通过HTTP请求操作OpenShift的资源。 操作 首先需要创建具有读取Project信息权限的clusterrole project_view 12345678910111213$ cat <<EOF | oc create -f -apiVersion: authorization.openshift.io/v1kind: ClusterRolemetadata: name: project_viewrules:- apiGroups: - project.openshift.io resources: - projects verbs: - getEOF 为需要调用的应用POD添加获取Project信息的权限 1$ oc adm policy add-clus...
OpenShift应用补丁检查与升级
OpenShift版本补丁查看:https://docs.openshift.com/container-platform/3.11/release_notes/ocp_3_11_release_notes.html 自动查看新增的补丁版本脚本 # -*- coding: utf-8 -*- """ ------------------------------------------------- File Name: get_update_v3.11 ------------------------------------------------- """ last_index="RHSA-2020:2992" last_flag = False import requests from pyquery import PyQuery url="https://docs.openshift.com/container-platform/3.11/release_note...
OpenShift支持Calico-BGP-路由反射(RR)模式
一、Calico 是什么calico 是容器网络的一种解决方案,也是当前最流行的方案之一。和其他虚拟网络最大的不同是,它没有采用 overlay 网络做报文的转发,提供了纯 3 层的网络模型。三层通信模型表示每个容器都通过 IP 直接通信,中间通过路由转发找到对方。在这个过程中,容器所在的节点类似于传统的路由器,提供了路由查找的功能。 要想路由工作能够正常,每个虚拟路由器(容器所在的主机节点)必须有某种方法知道整个集群的路由信息,calico 采用的是BGP 路由协议,全称是 Border Gateway Protocol。 除了能用于 docker 这样的容器外,它还能集成到容器集群平台 OpenShift/kubernetes、公有云平台 AWS、GCE 等, 而且也能很容易地集成到 openstack 等 Iaas 平台。 二、Calico网络方式2.1 IPIP模式从字面来理解,就是把一个IP数据包又套在一个IP包里,即把 IP 层封装到 IP 层的一个 tunnel,看起来似乎是浪费,实则不然。它的作用其实基本上就相当于一个基于IP层的网桥!一般来说,普通的...
OpenShift强大的oc-set命令详解
OpenShift的client工具oc功能非常强大,几乎能实现所有的操作,它的每一个子命令都能实现非常多的功能。其中有个容易被忽视却很强大的子命令oc set可以实现对资源很多额外的配置,包括有环境变量、资源限制、持久化卷挂载、健康检查等等。下面是oc set的帮助详情。 1234567891011121314151617181920212223242526[root@master ~]# oc setConfigure application resourcesUsage: oc set COMMAND [flags]Replication controllers, deployments, and daemon sets: env Update environment variables on a pod template resources Update resource requests/limits on objects with pod templates volumes Update volumes o...
OpenShift数据库挂了问题解决
每个计算节点都无法启动,报错信息为: 1234567891011Jan 05 00:05:10 node1.example.com origin-node[4307]: I0105 00:05:10.895622 4307 feature_gate.go:226] feature gates: &{{} map[RotateKubeletServerCertificate:true RotateKubeletClientCertificate:true]}Jan 05 00:05:10 node1.example.com origin-node[4307]: I0105 00:05:10.902964 4307 mount_linux.go:211] Detected OS with systemdJan 05 00:05:10 node1.example.com origin-node[4307]: I0105 00:05:10.908967 4307 server.go:383] Version: v1.10....
OpenShift日志审计功能与策略配置
OpenShift支持审计功能,它可以记录下所有API服务的请求。如果将所有请求记录下来,它的量非常庞大,同时也是没有太大意义的。所以OpenShift审计记录当然出会支持请求的过滤,通过方便地策略配置,可以有选择地记录下请求的内容。通常我们会记录对集群资源作更改的请求。 打开审计功能在部署OpenShift时可以打开审计功能 12openshift_master_audit_config={"enabled": true, "auditFilePath": "/var/lib/origin/audit-ocp.log", "maximumFileRetentionDays": 14, "maximumFileSizeMegabytes": 500, "maximumRetainedFiles": 5, "policyFile": "/etc/origin/master/adv-audit.yaml", &qu...
OpenShift日志级别相关
总共需要考虑的服务日志有 OpenShift 服务日志 Docker 守护进程日志 Etcd 日志 命令行日志 Pod/容器日志 OpenShift Builder 日志 OpenShift 路由器日志 OpenShift服务日志 docker的日志级别docker日志级别总共有以下:”debug”, “info”, “warn”, “error”, “fatal”五个。docker –log-level默认为info 参考文章https://access.redhat.com/zh_CN/solutions/3345021
OpenShift本地镜像仓库打不开
访问OpenShift本地镜像仓库https://registry.paas.net,报错 1234{"error": "invalid_request","error_description": "The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed."} 一般情况下,访问镜像仓库 12345678$ oc get oauthclientNAME SECRET WWW-CHALLENGE TOKEN-MAX-AGE REDIRECT URIScockpit-oau...
OpenShift中如何将PV与PVC绑定
PV/PVC是什么?PV(Persistent Volume):描述的是持久化的Volume实体概念,生命周期与Pod创建和销毁事件无关。要么运行事先准备好,要么通过动态创建。PVC(PersistentVolumeClaim):PVC是对PV的请求,申明Pod所希望使用的持久化存储的属性,例如容量,读写权限。 Kubernete Volumes能够帮忙应用持久化数据,PV/PVC是Kubernetes Volumes存储类型的一种,其它类型还有:本地存储:emptyDir / hostPath网络存储:in-tree: aws ElasticBlockStore / gcePersistentDisk / nfsout-of-tree:csi等网络存储插件Project Volume:secret / configmap / downwardAPI / serviceAccountToken PV/PVC的意义 使用不同的控制器来管理计算与存储资源,解耦POD与Volume的生命周期,实现...
OpenShift根据etcd备份数据恢复etcd集群
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121# ssh master1.etcd.com# ETCD_ALL_ENDPOINTS=` etcdctl3 --write-out=fields member list | awk '/ClientURL/{printf "%s%s",sep,$3; sep=","}'`# etcdctl3 --endpoints=$ETCD_ALL_ENDPOINTS endpoint status --w...
