openshift operator 介绍

网友投稿 291 2022-09-10

openshift operator 介绍

文章目录

​​1. 介绍​​​​2. Operator概述​​​​3. Operator Components​​​​4. Operator Installation​​​​5. Sample Operator Components​​

​​5.1 Custom Resource Definition​​​​5.2 RBAC Role​​​​5.3 RBAC RoleBinding​​​​5.4 添加权限项目管理员(admin)​​​​5.5 Operator Deployment​​

​​6 Custom Resource 管理​​

1. 介绍

Operator概述Operator部署Operator创建

假设和前提条件 你想:

了解操作人员如何在Red Hat®OpenShift®容器平台上工作了解如何部署Operator学习如何创建Operator

2. Operator概述

OpenShift API对象由资源和控制器组成

资源:Pod、ConfigMap、secret、service、route、PersistentVolumeClaim等。控制器:Deployment, ReplicaSet, StatefulSet, DaemonSet, et等等

Control loop: Observe → Analyze → Act Operator:管理资源的控制器类型

在软件中代表人类的操作知识来管理应用程序是否可以使用stock controllers或管理资源本身

Domain-/Application-Specific特定的知识

Install and uninstallUpgradeScale properlyBack upRestoreSelf-heal

crds允许扩展Kubernetes/OpenShift API,然后API知道新的资源crd允许创建定制资源(CRs)Operators watches CR的创建,通过创建应用程序进行反应CRs的管理方式与普通的OpenShift对象相同:创建、获取、描述、删除等。

例子:

oc get tomcats

CRD +Custom controller +Domain-specific knowledge =Operator

3. Operator Components

Operator DeletionCustom Resource Creation Using an Operator

4. Operator Installation

可以为以下任何一种安装Operators :

整个集群单项目

需要不同的RBAC对象 Operator监视一个项目或整个集群,以进行CR创建事件 是否可以自动向项目管理员授予发放CRs的权限 某些对象需要集群管理员权限(cluster-admin)

Cluster-Wide Operator 的安装步骤 所有步骤都需要以集群管理员权限执行

创建 CRD为 Operator​​创建项目​​以在其中运行为 Operator pod 创建服务帐户(​​service account​​)以运行创建 RBAC​​ClusterRole​​为运行 Operator 的服务帐户创建 RBAC​​ClusterRoleBinding​​创建指向包含 Operator 代码的容器映像的 Operator 部署将​​WATCH_NAMESPACE​​ 环境变量设置为“”

命名空间运算符的安装步骤 除 CRD 之外的所有步骤都可以在项目管理员权限下执行

创建​​CRD​​

需要集群管理员(cluster-admin)权限

为 Operator 创建项目以在其中运行为 Operator pod 创建​​service account​​以运行创建 RBAC​​Role​​为运行 Operator 的服务帐户创建​​RBAC RoleBinding​​创建指向包含 Operator 代码的容器映像的 Operator 部署将​​WATCH_NAMESPACE​​ 环境变量设置为当前项目名称要自动设置,请使用 downwardAPI​​metadata.namespace​​ 字段

5. Sample Operator Components

5.1 Custom Resource Definition

apiVersion: apiextensions.k8s.io/v1beta1kind: CustomResourceDefinitionmetadata: name: tomcats.apache.orgspec: group: apache.org names: kind: Tomcat listKind: TomcatList plural: tomcats singular: tomcat shortNames: - tc scope: Namespaced version: v1alpha1

5.2 RBAC Role

kind: RoleapiVersion: rbac.authorization.k8s.io/v1beta1metadata: name: tomcat-operatorrules:- apiGroups: - tomcats.apache.org resources: - "*" verbs: - "*"- apiGroups: - "" resources: - "*" verbs: - "*"

如果不使用集群管理权限,OpenShift需要明确的​​resources​​​ 和 ​​verbs​​列表

5.3 RBAC RoleBinding

kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1beta1metadata: name: default-account-tomcat-operatorsubjects:- kind: ServiceAccount name: tomcat-operatorroleRef: kind: Role name: tomcat-operator apiGroup: rbac.authorization.k8s.io

5.4 添加权限项目管理员(admin)

为每个项目管理员添加权限,以创建从项目访问CRD的角色:

apiVersion: authorization.openshift.io/v1kind: ClusterRolemetadata: labels: rbac.authorization.k8s.io/aggregate-to-admin: "true" name: gogs-admin-rulesrules:- apiGroups: - gpte.opentlc.com resources: - gogs verbs: - create - update - delete - get - list - watch - patch

5.5 Operator Deployment

apiVersion: apps/v1kind: Deploymentmetadata: name: tomcat-operatorspec: replicas: 1 selector: matchLabels: name: tomcat-operator template: metadata: labels: name: tomcat-operator spec: serviceAccountName: tomcat-operator containers: - name: tomcat-operator image: quay.io/wkulhanek/tomcat-operator:v0.1.0 imagePullPolicy: Always env: - name: WATCH_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace

To deploy a cluster-wide Operator, replace valueFrom: with value: “”.

6 Custom Resource 管理

运行操作员将在以下两种方式中创建CR:

整个OpenShift集群运行者正在运行的项目

当创建CR时,Operator接收事件 然后Operator创建所有OpenShift资源组成的应用程序

Example: Custom Resource Creation to create CR instance: Create YAML file with definition of CR:

apiVersion: apache.org/v1alpha1kind: Tomcatmetadata: name: mytomcatspec: replicaCount: 2

Create resource in OpenShift:

oc create -f mytomcat.yaml

Custom Resource Management 要操作和检查CR,请使用oc命令:

oc get tomcatsoc describe tomcat mytomcatoc scale tomcats --replicas=2 # only if Operator supports scaling

不要直接扩展ReplicaSets, deployment, StatefulSets, etc

Use Operator to scaleOperator继续监视已创建的资源,并将其设置回初始状态

删除所有创建的OpenShift API对象,删除CR:

oc delete tomcat mytomcat

Summary

Operator ComponentsOperator InstallationSample Operator ComponentsOperator DeletionCustom Resource Creation Using an Operator

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes CKS【19】---Image Vulnerability Scanning(Trivy)
下一篇:k8s之常见问题汇总
相关文章

 发表评论

暂时没有评论,来抢沙发吧~