当前位置:网站首页>Pratique de gestion hiérarchique basée sur kubesphere
Pratique de gestion hiérarchique basée sur kubesphere
2022-06-25 07:03:00 【Kubesphere】
Auteur:Xu Wei,Ingénieur de la recherche et du développement de Space Netcom
K8s Est un leader dans l'orchestration de conteneurs et le déploiement d'applications distribuées,In K8s Dans l'environnement,Nous avons juste besoin de nous soucier de la logique d'entreprise appliquée,Réduit le fardeau administratif de notre réseau de serveurs et de stockage.Pour un utilisateur,K8s Est une plate - forme complexe d'orchestration de conteneurs,Les coûts d'apprentissage sont très élevés.KubeSphere Abstrait K8s,Et très productivisé,Une plate - forme Cloud Multi - locataires entièrement empilée a été construite,Il offre aux utilisateurs un、Sécurité、Riche en fonctionnalités、Avec l'expérience ultime Web Console,C'est réglé. K8s Utilisez des points de douleur tels que des seuils élevés et des outils écologiques primitifs en nuage,Nous permet de nous concentrer sur les itérations rapides de l'entreprise,Sa surveillance multidimensionnelle des données,Pour localiser le problème,Ça m'a beaucoup aidé.
Pourquoi? KuberSphere Mise en œuvre de la gestion hiérarchique
In KubeSphere Moyenne,Les ressources peuvent être partagées entre locataires,Selon les différents rôles assignés,Il est possible d'utiliser une variété de ressources.Entre le locataire et la ressource、Le degré de liberté entre la ressource et la ressource est élevé,La granularité des permissions est également assez grande.Dans notre système,La ressource a un niveau de permission,Comme les utilisateurs de bas niveau peuvent être invités par、Accorder des permissions, etc., pour exploiter des ressources de haut niveau,Ou comme dans un projet de bas niveau Pod Peut être programmé sur des noeuds de haut niveau,Ressources.Ce genre de questions sur les ressources opérationnelles à plusieurs niveaux,On est là. KubeSphere La gestion hiérarchique est réalisée sur la base de.
Qu'est - ce qu'un système de classement
Classement, .Comme son nom l'indique, il s'agit de décomposer l'ensemble selon des critères établis 、Classification. Nous l'avons résumé en un modèle pyramidal , Il y aura plusieurs niveaux de la Fondation au Sommet de la tour , Nous utilisons les ressources publiques comme base de la pyramide , Avec la plus haute autorité admin Comme le Sommet de la tour , Les autres ressources sont classées selon le niveau d'autorité . Les ressources de niveau inférieur ne sont pas accessibles aux ressources de niveau supérieur , Les ressources de haut niveau ont accès à toutes les ressources sous leur niveau , Construit un tel déclin des capitaux propres 、 Système hiérarchique d'isolement hiérarchique .

Comment réaliser la gestion hiérarchique
Nous avons défini une étiquette qui représente la hiérarchie kubernetes.io/level. Prenons l'exemple d'un Cluster Multi - noeuds , D'abord, nous donnerons aux utilisateurs 、Espace d'entreprise、 Les ressources telles que les noeuds sont étiquetées pour représenter le niveau . Lorsque vous invitez un utilisateur à rejoindre un espace d'entreprise ou un projet , L'espace d'entreprise ou le projet requis ne doit pas être supérieur au niveau de l'utilisateur , De même, lorsque vous liez un espace d'entreprise , Il est également exigé que le niveau du projet ne soit pas supérieur à celui de l'espace d'entreprise , Pour prendre en charge les ressources ; Nous considérons que le niveau des ressources au titre du même programme est le même , Charge utile créée sur la base du projet 、Pod、 Le niveau des ressources, comme les services, est conforme au projet ;En même temps Pod Ajouter l'affinité nodale ,Pour faire Pod Envoyé à un noeud dont le niveau de permission n'est pas supérieur à .

Par exemple, ici, Nous avons créé un niveau de permission 3 Utilisateurs de demo-user, Il peut rejoindre un niveau d'autorité inférieur ou égal à 3 Dans l'espace d'entreprise ou le projet .
kind: UserapiVersion: iam.kubesphere.io/v1alpha2metadata: name: demo-user labels: kubernetes.io/level: 3spec: email: [email protected] Créer un niveau de permission est 2 Projets pour demo-ns, Ensuite, la charge de travail créée par le projet 、Pod、 Le niveau de permission pour les ressources telles que le stockage est également 2.
apiVersion: v1kind: Namespacemetadata: name: demo-ns labels: kubernetes.io/level: 2Basé sur demo-ns Le projet a créé un nginx De Pod, Son niveau d'autorité est aussi 2, Ajouter l'affinité nodale , Exiger qu'il soit envoyé à un niveau d'autorisation n'excédant pas 2 Sur le noeud de.
apiVersion: apps/v1kind: Podmetadata: labels: kubernetes.io/level: 2 name: nginxspec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent ports: - containerPort: 80 protocol: TCP affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/level operator: Lt values: - 2 - matchExpressions: - key: kubernetes.io/level operator: In values: - 2Comment réaliser la mise à niveau des ressources
Dans un système de gestion hiérarchique , Supporte une division infinie des niveaux , Il suffit de définir une valeur intermédiaire , Vous pouvez insérer un nouveau niveau entre les deux niveaux , Aucune autre ressource n'est nécessaire ; Lors de la mise à niveau des ressources , Seule la ressource correspondante doit être modifiée label Étiquettes, Les ressources peuvent être mises à niveau .Bien sûr., Lors de la mise à niveau et de la déclassement des ressources , Nous devons tester les ressources , Lors de la mise à niveau garantie , Le niveau d'autorité de ses ressources supérieures ne doit pas être inférieur au niveau cible ;En même temps,Lors de la rétrogradation, Le niveau d'autorisation de ses ressources inférieures ne doit pas être supérieur au niveau cible . Lorsque les conditions de fonctionnement de la rétrogradation ne sont pas remplies , Les ressources correspondantes doivent être ajustées en conséquence avant que .

Entre les différents niveaux Pod Isolement du Réseau pour
Dans le système de classement , Nous exigeons des Pod Accès aux niveaux inférieurs Pod, Mais le niveau inférieur Pod Impossible d'accéder au niveau supérieur Pod, Alors comment pouvons - nous nous assurer que les différents niveaux Pod Et la communication réseau .
Projet sans isolement du réseau ,Pod Le réseau est interconnecté , Donc voici une nouvelle liste noire de la politique du réseau .
apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: deny-all namespace: demo-ns labels: kubernetes.io/level: 2spec: podSelector: {} policyTypes: - IngresspodSelector:{} Agir sur tous les Pod, Bloquer l'entrée de tous les flux .
Puis le niveau de l'étiquette de libération est supérieur au niveau cible (Ici. 2) Flux vers (Nous sommes d'accord avec Ingress Le débit n'est pas limité ).
apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: level-match-network-policy namespace: demo-ns labels: kubernetes.io/level: 2spec: podSelector: matchExpressions: - key: kubernetes.io/level operator: Gt values: - 2 policyTypes: - IngressRésumé
KubeSphere Construction de l'utilisateur résolue 、Déploiement、 Points de douleur dans la gestion et l'observabilité , Ses ressources peuvent être partagées entre plusieurs locataires . Mais dans les scénarios où la ressource a un niveau de permission , Les ressources de niveau inférieur peuvent utiliser des ressources de niveau supérieur , Problèmes de gestion des ressources .Pour résoudre ce problème,On est là. KubeSphere Sur la base de, Pour tenir compte de la gestion hiérarchique entre les locataires et les ressources et entre les ressources et les ressources , En même temps, dans la stratégie de réseau du projet , Ajouter des listes noires et blanches , Amélioration de l'isolement du réseau entre les projets , Rendre la gestion des ressources plus sûre .
Cet article est basé sur la plateforme Multi - blog OpenWrite Publication!
边栏推荐
- [acnoi2022] the structure of President Wang
- [ros2] Why use ros2? Introduction to ros2 system characteristics
- Atomic alpha development board -- SD card and EMMC burning tool
- Power representation in go language
- Navicat prevent new query from being deleted by mistake
- Qcom--lk phase I2C interface configuration scheme -i2c6
- 【一起上水硕系列】Day 5
- 了解zbrush雕刻软件,以及游戏建模的分析
- Uncaught TypeError: Cannot read properties of undefined (reading ‘prototype‘)
- Tp6 interface returns three elements
猜你喜欢

Non-contact infrared temperature measurement system for human body based on single chip microcomputer

The significance and proof of weak large number theorem

直接选择排序和快速排序

レレ / 蕾蕾

How to realize hierarchical management of application and hardware in embedded projects
![[200 opencv routines of youcans] 104 Motion blur degradation model](/img/a9/8841ffc8bd3c486bc4011a1a84ff45.jpg)
[200 opencv routines of youcans] 104 Motion blur degradation model

Acwing / 2004. Mauvaise écriture

【一起上水硕系列】Day 4

The process of making wooden barrels with 3DMAX software: a three-step process

StreamNative Platform 1.5 版本发布,集成 Istio、支持 OpenShift 部署
随机推荐
Meta universe is over, Web 3.0 will be fooled again?
You can see the classification of SQL injection. SQL injection point /sql injection type /sql injection has several /sql injection point classifications
Blue Bridge Cup SCM module code (nixie tube) (code + comments)
Query process of MySQL secondary index
Blue Bridge Cup SCM module code (external interrupt) (code + comment)
Understand ZBrush carving software and game modeling analysis
Your local changes to the following files would be overwritten by merge: .vs/slnx.sqlite
Analysis on the scale of China's smart airport industry in 2020: there is still a large space for competition in the market [figure]
[轻松学会shell编程]-5、计划任务
CTFHub-Web-信息泄露-目录遍历
cos(a+b)=cosa*cosb-sina*sinb的推导过程
How to deploy locally developed SAP ui5 applications to ABAP servers
Fastadmin cascade clear data
Cs8683 (120W mono class D power amplifier IC)
ACWING2013. 三条线
System dilemma and software complexity: Why are our systems so complex?
活动报名|Apache Pulsar x KubeSphere 在线 Meetup 火热报名中
[Shangshui Shuo series] day 5
Your local changes to the following files would be overwritten by merge: . vs/slnx. sqlite
Blue Bridge Cup SCM module code (LED) (code + comments)