当前位置: 首页 > news >正文

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: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.14.2ports:- containerPort: 80
    
  2. 创建Service

    apiVersion: v1
    kind: Service
    metadata:name: nginx-service
    spec:selector:app: nginxports:- protocol: TCPport: 80targetPort: 80type: 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, 有大厂完整面经,工作技术等经验分享

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

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

http://www.lryc.cn/news/268565.html

相关文章:

  • Hive执行计划
  • Leetcode—62.不同路径【中等】
  • 【汇编笔记】初识汇编-内存读写
  • Shell脚本通过渗透测试检测服务器安全!
  • 数据结构--查找
  • IntelliJ IDEA Apache Dubbo,IDEA 官方插件正式发布!
  • 使用Visual Studio 2022 winform项目打包成安装程序.exe
  • 报错-idea pom.xml 有一条灰色横线
  • openmediavault(OMV) (19)云相册(3)mt-photos
  • 基于openGauss5.0.0全密态数据库等值查询小案例
  • Oracle中varchar2和nvarchar2的区别
  • linux环境下从一个服务器复制文件到另一个服务器
  • JSoup 爬虫遇到的 404 错误解决方案
  • Vue.set 方法原理
  • CentOS 7的新特性
  • Vue 模板编译原理
  • ElementUI的Table组件行合并上手指南
  • 【ES6】Class继承-super关键字
  • 做亚马逊测评不知道怎么找客户?这才是亚马逊测评的正确打开方式!
  • 传感器基础:传感器使用与编程使用(三)
  • 深入浅出:分布式、CAP 和 BASE 理论(荣耀典藏版)
  • vue3+elementPlus:el-drawer新增修改弹窗复用
  • 使用Docker快速安装grafana
  • excel 函数技巧
  • Ubuntu安装WordPress并使用Nginx作为Web服务器
  • [Linux]Ubuntu noVNC使用
  • CSRF和SSRF原理、区别、防御方法
  • 如何使用JMeter测试https请求
  • el-table 纵向垂直表头
  • python/pytorch读取数据集