首页 文章 精选 留言 我的

精选列表

搜索[Kubernetes],共8193篇文章
优秀的个人博客,低调大师

Kubernetes - 7.2 RBAC - RoleBinding

什么是RoleBinding RoleBinding通过已经定义的Role权限授予到用户、用户组,从而让用户获得在NameSpace对应的操作资源权限。 RoleBinding基本操作 通过YAML资源定义清单创建RoleBindingkubectl apply -f pod-rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1beta1 kind: RoleBinding metadata: name: pod-rolebinding namespace: default subjects: - kind: User name: carry apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: pod-role apiGroup: rbac.authorization.k8s.io #### 什么是ClusterRoleBindingClusterRoleBinding通过已经定义的ClusterRole权限授予到用户或用户组,从而让用户获得集群内对应的操作资源权限。 ClusterRoleBinding基本操作 通过YAML资源定义清单创建ClusterRoleBindingkubectl apply -f pod-clusterrolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: pod-clusterrolebinding subjects: - kind: Group name: super-admin apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: pod-clusterrole apiGroup: rbac.authorization.k8s.io 相关参数 RoleBinding、ClusterRoleBinding绑定的Subject对象可以是User、Group、Service Account

优秀的个人博客,低调大师

Kubernetes - 4.7 Workload - Job

什么是Job? Job一般用于数据处理、迁移等一次性任务处理场景,Job会创建Pod进行作业并确保完成。 Job作业模式 非并行作业: 作业完成后Pod自动终止。 具有完成次数计数的并行作业:指定所需完成作业的次数,作业完成后Pod自动终止。 具有工作队列的并行作业:指定Pod之间或外部服务的协调确定作业,Pod全部终止后作业完成。 通过Yaml资源定义清单创建Job apiVersion: batch/v1 kind: Job metadata: name: pi spec: template: spec: containers: - name: pi image: perl command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] restartPolicy: Never backoffLimit: 4 参数 .spec.completions #需要Pod的执行成功次数 .spec.parallelism #Job同时可执行的Pod数量 .spec.backoffLimit #Job的容错次数 .spec.activeDeadlineSeconds #设置Job运行的超时时间

优秀的个人博客,低调大师

Kubernetes - 4.8 Workload - CronJob

什么是CronJob? CronJob负责处理周期性的任务,基于时间点触发运行,一般用于备份、数据清理、更新等自动化场景。CronJob也是使用Job对象来执行任务,每一次运行都是会创建一个Job对象,对于CronJob的管理是与Job一样的。 通过Yaml资源定义清单创建CronJob apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" #执行周期 jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo "Hello, World!" restartPolicy: OnFailure 参数说明 .spec.schedule 执行周期,由分、时、日、月、周组成,*代表每个周期都触发。 .spec.concurrencyPolicy 并发策略 Allow 允许同时作业。 Forbid 不允许并发作业,如果开始新作业并且之前的作业未完成,那么将跳过新的作业。 Replace 如果之前的作业未完成,那么将用当前的作业替换掉之前的作业。 .spec.suspend 如果为true则将后续的作业都挂起,不包括已开始运行的作业。 .spec.successfulJobsHistoryLimit 成功的作业历史记录 .spec.failedJobsHistoryLimit 失败的作业历史记录

优秀的个人博客,低调大师

Kubernetes - 4.5 Workload - StatefulSet

什么是StatefulSet? StatefulSet表示一组具有唯一持久身份标识和稳定主机名的有状态Pod,无论Pod在哪一个Node上运行,身份标识及持久化的数据其都会保留。一般用于持久化存储、固定网络标记、有序部署、有伸缩等场景。 什么是有状态应用? 有状态应用是将数据或应用程序状态持久化到关联的存储中,例如MySQL、Kafka、Zookeeper等应用场景,需要对其进行唯一持久身份的标识及数据的永久保存到存储中。 StatefulSet操作 像Deployment一样StatefulSet管理基于相同容器规范的Pod。但唯一不同的是StatefulSet为其每个Pod维护一个标识身份,StatefulSet需要Headless Service来负责Pod的网络身份。每个Pod具有一个存储类及存储声明,无论Pod被调度到哪一个节点,相关的存储挂载将伴随Pod。在删除Pod或者Stateful时,不会删除掉关联的PersistentVolume及PersistentVolumes。 通过yaml资源定义清单创建 apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: ports: - port: 80 clusterIP: None selector: app: nginx --- apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: selector: matchLabels: app: nginx serviceName: "nginx" replicas: 3 template: metadata: labels: app: nginx spec: terminationGracePeriodSeconds: 10 containers: - name: nginx image: nginx:1.16 volumeMounts: - name: www mountPath: /usr/share/nginx/html volumeClaimTemplates: - metadata: name: www spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi 查看StatefulSet列表kubectl get statefulset查看StatefulSet描述信息kubectl describe statefulset StatefulSet更新策略 通过指定 spec: updateStrategy 中定义的更新策略来确定如何处理更新。 OnDelete: 当手动删除旧的Pod时新的Pod才会被自动被创建。 RollingUpdate: 默认的更新策略。旧的Pod自动被删除,新的Pod也自动创建。 分区 通过指定 .spec.updateStrategy.rollingUpdate.partition 中定义的来对 RollingUpdate 更新策略进行分区,如果指定了分区,则当 StatefulSet 的 .spec.template 更新时,具有大于或等于分区序数的所有 Pod 将被更新。具有小于分区的序数的所有 Pod 将不会被更新,即使删除它们也将被重新创建。如果 StatefulSet 的 .spec.updateStrategy.rollingUpdate.partition 大于其 .spec.replicas,则其 .spec.template 的更新将不会传播到 Pod。一般情况下不需要使用分区,在金丝雀、预发布等场景下是比较有用的。

优秀的个人博客,低调大师

Kubernetes - 4.3 Workload - RelicaSet

什么是RelicaSet? ReplicaSet是为了保持维护的期待Pod副本数量与现时Pod副本数量一致。如在由于Pod异常退出导致期待的副本数量不足时,会自动创建新的Pod保证到与期望的Pod副本数量一致。 ReplicaSet的工作流程 定义副本数量,定义一个选择器,指定选择器如何获取到具有特定标识Pod,定义一个模板指定新创建的Pod的期望状态。 通过yaml资源定义清单创建kubectl apply -f rs-demo.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: nginx labels: app: nginx spec: replicas: 3 #副本数量 selector: #标签选择器 matchLabels: app: nginx template: # Pod的模板 metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.16 获取ReplicaSet的状态kubectl get rs 获取Pod的数量,与ReplicaSet定义的一致kubectl get pods 手动删除Pod,ReplicaSet自动创建Pod保持副本数量与定义的一致kubectl delete pod nginx-pxgbnkubectl get pods 删除ReplicationControllerkubectl delete -f rs-demo.yamlkubectl delete rs nginx 使用技巧 官方不建议单独使用ReplicaSet,建议使用Deployment来代替ReplicaSet的单独使用,通过Deployment来创建ReplicaSet,Deployment比ReplicaSet多了例如支持版本回滚等新功能特性。

优秀的个人博客,低调大师

Kubernetes - 4.2 Workload - ReplicationController

什么是ReplicationController ReplicationController确保Pod的副本数量始终是在可用的状态。如果Pod过多时将删除多余的数量,较少时则创建新的Pod。 ReplicationController操作 通过yaml资源定义清单创建kubectl apply -f rc-demo.yamlapiVersion: v1kind: ReplicationControllermetadata: name: nginxspec: replicas: 3 # 副本数量,通过此字段来伸缩Pod的数量 selector: # 标签选择器,匹配相同的Pod标签进行管理Pod app: nginx template: # Pod模板 metadata: name: nginx labels: app: nginx spec: containers: - name: nginx image: nginx:1.16 检查ReplicationController的状态kubectl describe rc/nginx 查看Pod副本数量kubectl get pods 删除ReplicationControllerkubectl delete -f rc-demo.yamlkubectl delete rc nginx 使用技巧 目前官方已不建议使用ReplicationController,建议使用ReplicaSet来代替ReplicationController的使用,两者主要区别在于选择器的支持,ReplicationController只能支持等式的选择,而ReplicaSet可以支持声明式集的选择等。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册