K8s之声明式APIs

大家好,我是升仔

引言

Kubernetes(K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用。在K8s中,声明式APIs(Application Programming Interfaces)是一种核心概念,它允许用户通过声明资源的目标状态来管理和操作这些资源。

基本概念
  1. 声明式与命令式
    • 声明式(Declarative):指定“想要的状态”,而不是执行一系列操作来达到这个状态。
    • 命令式(Imperative):通过一系列具体命令来改变系统的状态。
  2. 资源和控制器
    • 资源(Resources):在K8s中,所有内容都被视为资源,例如Pods、Deployments、Services等。
    • 控制器(Controllers):监视资源状态,确保实际状态与声明的目标状态一致。
工作原理
  1. 资源定义
    • 使用YAML或JSON格式文件定义资源的期望状态。
  2. API服务器
    • 用户通过K8s API服务器提交资源定义。
    • API服务器存储资源定义到etcd中。
  3. 控制循环
    • 控制器监视资源的当前状态。
    • 如果当前状态与期望状态不符,控制器采取行动以达到期望状态。
代码示例
  1. 定义Deployment

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    
  2. 创建Service

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: LoadBalancer
    
应用场景
  1. 部署应用
    • 使用Deployment定义应用的副本数量、镜像等。
  2. 服务暴露
    • 使用Service定义如何访问应用。
  3. 配置更新
    • 使用ConfigMap和Secret存储配置和敏感数据。
  4. 自动扩缩容
    • 使用Horizontal Pod Autoscaler根据负载自动调整Pod数量。
  5. 持久化存储
    • 使用PersistentVolume和PersistentVolumeClaim为Pods提供持久化数据存储。
  6. 网络策略
    • 使用NetworkPolicy定义Pod间的网络访问规则。
结语

声明式APIs是K8s的一大特色,它提供了一种简洁、高效且可靠的方式来管理和操作大规模的容器化应用。通过声明式APIs,用户可以轻松地部署和维护复杂的应用,同时确保系统的稳定性和可扩展性。

最后说一句(求关注,求赞,别白嫖)

最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。

这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软

本文已收录于我的技术网站,next-java.com, 有大厂完整面经,工作技术等经验分享

求一键三连:点赞、分享、收藏

点赞对我真的非常重要!在线求赞,加个关注非常感激

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

升仔聊编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值