k8s学习-ReplicationController 、ReplicaSet(工作原理、模板、实战)

简介: k8s学习-ReplicationController 、ReplicaSet(工作原理、模板、实战)

前言

前面文章k8s学习-Pod(生命周期、探针、模板、创建、删除等)学习了Pod,Pod在集群中可能会有多个,一个Pod也可能会有多个副本来提高高可用性。本篇文章学习RC与RS,对于RC,不必太多关注,这两个一般都不用管理手动创建,而是使用更高级的workload,Deployment基于RS,所以RS可以关注一下。

副本控制器-RC(已废弃)

工作原理

如果 pod 太多,ReplicationController 会终止多余的 pod。如果太少,ReplicationController 会启动更多的 pod。

模板

RC除了需要apiVersion、kind和metadata字段,还需要.spec字段。

spec字段下一般有

  • replicas:期望的副本数
  • selector:Pod选择器,用于管理所有带此label的Pod,若指定,template中的需要一致
  • template:Pod 模板
apiVersion: v1
kind: ReplicationController
metadata:
  name: nginx # RC的名字
spec:
  replicas: 3 # 期望的副本数
  selector:   # 选择器,需要与template.metadata.labels一致
    app: nginx
  template:   # Pod模板
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

实战

创建

kubectl create -f rc-test.yaml -n killer
kubectl get pods -n killer
kubectl get rc -n killer

删除

直接删除Pod是不行

可以看到RC会保证Pod的数量

kubectl delete rc nginx -n killer

副本集合-RS

工作原理

ReplicaSet 由字段定义,包括指定如何识别可以获取的 Pod 的选择器、指示它应该维护多少个 Pod 的副本数量以及指定它应该创建以满足数量的新 Pod 的数据的 Pod 模板副本标准。

模板

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: frontend
  labels:
    app: guestbook
    tier: frontend
spec:
  # modify replicas according to your case
  replicas: 3
  selector:
    matchLabels:
      tier: frontend
  template:
    metadata:
      labels:
        tier: frontend
    spec:
      containers:
      - name: php-redis
        image: gcr.io/google_samples/gb-frontend:v3

这个就不实战了,生产环境中更多的是使用Deployment等进行替代。

参考

k8s-RC

k8s-RS

更多k8s相关内容,请看文章:k8s学习-思维导图与学习笔记

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 Kubernetes 持续交付
k8s学习
【10月更文挑战第1天】
652 4
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
1094 33
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
749 5
|
Kubernetes 持续交付 数据库
阿里云ACK+GitLab企业级部署实战教程
GitLab 是一个功能强大的基于 Web 的 DevOps 生命周期平台,整合了源代码管理、持续集成/持续部署(CI/CD)、项目管理等多种工具。其一体化设计使得开发团队能够在同一平台上进行代码协作、自动化构建与部署及全面的项目监控,极大提升了开发效率和项目透明度。 GitLab 的优势在于其作为一体化平台减少了工具切换,高度可定制以满足不同项目需求,并拥有活跃的开源社区和企业级功能,如高级权限管理和专业的技术支持。借助这些优势,GitLab 成为许多开发团队首选的 DevOps 工具,实现从代码编写到生产部署的全流程自动化和优化。
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
存储 Kubernetes 调度
|
Kubernetes API 调度
k8s学习--pod的所有状态详解(图例展示)
k8s学习--pod的所有状态详解(图例展示)
2043 2
|
Kubernetes 监控 安全
容器化技术:Docker与Kubernetes的实战应用
容器化技术:Docker与Kubernetes的实战应用
|
存储 Kubernetes Devops
Kubernetes集群管理和服务部署实战
Kubernetes集群管理和服务部署实战
298 0
|
Kubernetes 网络协议 Docker
Kubernetes入门到进阶实战
Kubernetes入门到进阶实战
394 0

推荐镜像

更多