K8S(四)—— K8s资源管理与项目生命周期

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • [一、kubectl 与 K8s 资源管理核心概述](#一、kubectl 与 K8s 资源管理核心概述)
    • [1.1 K8s 资源管理的两种核心方式](#1.1 K8s 资源管理的两种核心方式)
      • [1.1.1 基本原理](#1.1.1 基本原理)
      • [1.1.2 基础信息查看命令](#1.1.2 基础信息查看命令)
      • [1.1.3 基本资源查看命令](#1.1.3 基本资源查看命令)
      • [1.1.4 命名空间操作](#1.1.4 命名空间操作)
      • [1.1.5 创建 Deployment(副本控制器)](#1.1.5 创建 Deployment(副本控制器))
      • [1.1.6 登录容器与删除 Pod](#1.1.6 登录容器与删除 Pod)
      • [1.1.7 扩缩容与删除](#1.1.7 扩缩容与删除)
    • 1.2、项目生命周期管理
  • 总结

前言

1、管理操作分为两大类陈述和声明

2、k8s 基础信息查看(命令)增删改查

3、项目生命周期 创建 发布 更新 回滚 删除 所有命令和过程

4、主要发布过程 金丝雀发布 蓝绿发布 滚动发布


一、kubectl 与 K8s 资源管理核心概述

1.1 K8s 资源管理的两种核心方式

  • 陈述式(命令式)管理方法
  • 声明式(配置清单式)管理方法
管理方式 核心逻辑 适用场景 优势 劣势
陈述式 命令驱动:直接通过 kubectl 命令指定"做什么"(如创建 Pod、删除 Service) 简单操作(如临时查询、快速创建单个资源)、新手入门 命令简洁、即时生效、学习成本低 不便于复杂配置修改、难以批量管理、无版本化记录
声明式 配置驱动:通过 YAML/JSON 配置清单定义"要什么状态",kubectl 确保集群状态与配置一致 生产环境、复杂资源配置、批量管理、版本控制 支持版本化(如 Git 管理)、便于团队协作、修改精准 学习成本高、需理解配置清单语法

1.1.1 基本原理

  1. Kubernetes 集群资源管理的唯一入口是通过调用 apiserver 的接口。
  2. kubectl 是官方 CLI 命令行工具,用于与 apiserver 通信,将用户命令转化为 apiserver 能识别的
    请求,实现集群资源管理。
  3. 查看 kubectl 命令大全:
bash 复制代码
kubectl --help

中文文档参考:http://docs.kubernetes.org.cn/683.html

  1. 对资源的"增、删、查"操作较方便,但"改"操作相对复杂。

1.1.2 基础信息查看命令

bash 复制代码
kubectl version # 查看版本信息
kubectl api-resources # 查看资源对象简写
kubectl cluster-info # 查看集群信息

命令自动补全与日志查看

bash 复制代码
source <(kubectl completion bash) # 启用kubectl自动补全
journalctl -u kubelet -f # 查看node节点日志

1.1.3 基本资源查看命令

bash 复制代码
kubectl get <resource> [-o wide|json|yaml] [-n namespace]

-n 指定命名空间

-o 指定输出格式

--all-namespaces :显示所有命名空间

--show-labels :显示所有标签

-l app=nginx :筛选指定标签的资源

bash 复制代码
kubectl get componentstatuses # 查看 master 节点状态
kubectl get namespace # 查看命名空间
kubectl get all -n default # 查看default命名空间的所有资源

1.1.4 命名空间操作

bash 复制代码
kubectl create ns app # 创建命名空间
kubectl delete namespace app # 删除命名空间

1.1.5 创建 Deployment(副本控制器)

自主式保存在主机上

bash 复制代码
kubectl create deployment nginx-wl --image=nginx -n kube-public

kubectl create deployment
kubectl run 自主式的pod 静态


bash 复制代码
###描述某个资源的详细信息
kubectl describe deployment nginx-wl -n kube-public
kubectl describe pod nginx-wl-d47f99cb6-hv6gz -n kube-public
kubectl get pods -n kube-public

1.1.6 登录容器与删除 Pod

bash 复制代码
kubectl exec -it nginx-wl-d47f99cb6-hv6gz bash -n kube-public
kubectl delete pod nginx-wl-d47f99cb6-hv6gz -n kube-public

#若pod无法删除,总是处于terminate状态,则要强行删除pod
kubectl delete pod <pod-name> -n <namespace> --force --grace-period=0
#grace-period表示过渡存活期,默认30s,在删除pod之前允许POD慢慢终止其上的容器进程,从而优雅退
出,0表示立即终止pod


1.1.7 扩缩容与删除

bash 复制代码
kubectl scale deployment nginx-wl --replicas=2 -n kube-public
kubectl scale deployment nginx-wl --replicas=1 -n kube-public
kubectl delete deployment nginx-wl -n kube-public

1.2、项目生命周期管理

项目的生命周期包括:
创建 → 发布 → 更新 → 回滚 → 删除 5 个阶段,每个阶段对应特定的 kubectl 命令。

1.2.1 创建阶段(kubectl create)

●创建并运行一个或多个容器镜像。

●创建一个deployment 或job 来管理容器。

bash 复制代码
kubectl create --help

//启动 nginx 实例,暴露容器端口 80,设置副本数 3

kubectl create deployment nginx --image=nginx:1.14 --port=80 --replicas=3

kubectl get pods

kubectl get all


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

相关推荐
星图易码20 分钟前
星图云开发者平台功能详解 | 微服务管理器:异构服务零门槛无缝集成
微服务·云原生·架构
yuezhilangniao23 分钟前
K8s优化-大规模集群优化-大规模K8S优化-性能优化速查表-优化顺序-先阻塞瓶颈再性能瓶颈
容器·性能优化·kubernetes
小二·1 小时前
Go 语言系统编程与云原生开发实战(第4篇):数据持久化深度实战 —— PostgreSQL、GORM 与 Repository 模式
postgresql·云原生·golang
麦兜*1 小时前
深入解析云原生时代的高性能消息中间件:基于Apache Pulsar与Kafka架构对比的万亿级数据吞吐与低延迟实时处理实战
云原生·kafka·apache
KubeSphere 云原生1 小时前
在 KubeSphere 上运行 Moltbot(Clawdbot):自托管 AI 助手的云原生实践
docker·云原生·容器
你才是臭弟弟1 小时前
生产环境开箱即用的“Flink + Iceberg 数据湖容器搭建”(Docker)
docker·容器·jar
_运维那些事儿1 小时前
GitLabCI-CD入门
运维·ci/cd·容器·云计算·k8s·运维开发
Clarence Liu2 小时前
k8s 1.35 使用kubeadm部署高可用集群
云原生·容器·kubernetes
boy快快长大2 小时前
Docker简单服务迁移
运维·docker·容器
qq_428389042 小时前
尚硅谷k8s自己实践步骤
spring cloud·kubernetes