• (2022版)一套教程搞定k8s安装到实战 | Replication Cotroller和ReplicaSet


    视频来源:B站《(2022版)最新、最全、最详细的Kubernetes(K8s)教程,从K8s安装到实战一套搞定》

    一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

    附上汇总贴:(2022版)一套教程搞定k8s安装到实战 | 汇总_COCOgsta的博客-CSDN博客


    Replication Controller(复制控制器,RC)和ReplicaSet(复制集,RS)是两种简单部署Pod的方式。因为在生成环境中,主要使用更高级的Deployment等方式进行Pod的管理和部署,所以本节只对Replication Controller和Replica Set的部署方式进行简单介绍。

    Replication Controller

    Replication Controller(简称RC)可确保Pod副本数达到期望值,也就是RC定义的数量。换句话说,Replication Controller可确保一个Pod或一组同类Pod总是可用。

    如果存在的Pod大于设定的值,则Replication Controller将终止额外的Pod。如果太小,Replication Controller将启动更多的Pod用于保证达到期望值。与手动创建Pod不同的是,用Replication Controller维护的Pod在失败、删除和终止时会自动替换。因此即使应用程序只需要一个Pod,也应该使用Replication Controller或其他方式管理。Replication Controller类似于进程管理程序,但是Replication Controller不是监视单个节点上的各个进程,而是监视多个节点上的多个Pod。

    定义一个Replication Controller的示例如下。

    1. apiVersion: v1
    2. kind: ReplicationController
    3. metadata:
    4. name: nginx
    5. spec:
    6. replicas: 3
    7. selector:
    8. app: nginx
    9. template:
    10. metadata:
    11. name: nginx
    12. labels:
    13. app: nginx
    14. spec:
    15. containers:
    16. - name: nginx
    17. image: nginx
    18. ports:
    19. - containerPort: 80
    20. 复制代码

    ReplicaSet

    ReplicaSet是支持基于集合的标签选择器的下一代Replication Controller,它主要用作Deployment协调创建、删除和更新Pod,和Replication Controller唯一的区别是,ReplicaSet支持标签选择器。在实际应用中,虽然ReplicaSet可以单独使用,但是一般建议使用Deployment来自动管理ReplicaSet,除非自定义的Pod不需要更新或有其他编排等。

    定义一个ReplicaSet的示例如下:

    1. apiVersion: apps/v1
    2. kind: ReplicaSet
    3. metadata:
    4. name: frontend
    5. labels:
    6. app: guestbook
    7. tier: frontend
    8. spec:
    9. # modify replicas according to your case
    10. replicas: 3
    11. selector:
    12. matchLabels:
    13. tier: frontend
    14. matchExpressions:
    15. - {key: tier, operator: In, value: [frontend]}
    16. template:
    17. metadata:
    18. labels:
    19. app: guestbook
    20. tier: frontend
    21. spec:
    22. containers:
    23. - name: php-redis
    24. image: gcr.io/google_samples/gb-frontend:v3
    25. resources:
    26. requests:
    27. cpu: 100m
    28. memory: 100Mi
    29. env:
    30. - name: GET_HOSTS_FROM
    31. value: dns
    32. # If your cluster config does not include a dns service, then to
    33. # instead access environment variables to find service host
    34. # info, comment out the 'value: dns' line above, and uncomment the
    35. # line below.
    36. # value: env
    37. ports:
    38. - containerPort: 80
    39. 复制代码

    Replication Controller和ReplicaSet的创建删除和Pod并无太大区别,Replication Controller目前几乎已经不在生产环境中使用,ReplicaSet也很少单独被使用,都是使用更高级的资源Deployment、DaemonSet、StatefulSet进行管理Pod。

  • 相关阅读:
    成对连接点云分割
    Java学习之Java多线程知识点
    centos安装Redis
    SpringColud——Eureka注册中心
    Educational Codeforces Round 119 (Rated for Div. 2)
    【区块链技术与应用】(八)
    java毕业设计二手交易系统Mybatis+系统+数据库+调试部署
    个推支持海外消息推送,助力APP扬帆出海
    L70.linux命令每日一练 -- 第十章 Linux网络管理命令 -- nc和ssh
    学会Dockerfile
  • 原文地址:https://blog.csdn.net/guolianggsta/article/details/126156600