目录
[一.Kubernetes 操作管理概述](#一.Kubernetes 操作管理概述)
[1.创建阶段(kubectl create)](#1.创建阶段(kubectl create))
[2.发布阶段(kubectl expose)](#2.发布阶段(kubectl expose))
[3.更新阶段(kubectl set)](#3.更新阶段(kubectl set))
[4.回滚阶段(kubectl rollout)](#4.回滚阶段(kubectl rollout))
[5.删除阶段(kubectl delete)](#5.删除阶段(kubectl delete))
前言:
今天我将分享关于k8s的相关基础命令操作、项目生命周期管理、发布策略,以及声明式资源管理方法。
一.Kubernetes****操作管理概述
1.管理操作分类
Kubernetes 的管理操作分为两大类:
陈述式(命令式)管理方法
声明式(配置清单式)管理方法
2.陈述式资源管理方法
2.1基本原理
Kubernetes 集群资源管理的唯一入口是通过调用 apiserver 的接口。
kubectl 是官方 CLI 命令行工具,用于与 apiserver 通信,将用户命令转化为 apiserver 能识别的
请求,实现集群资源管理。
查看 kubectl 命令大全:

对资源的 " 增、删、查 " 操作较方便,但 " 改 " 操作相对复杂
2.2.基础信息查看命令
集群与版本信息:

命令自动补全与版本查看:

2.3.基本资源查看命令

- n 指定命名空间
- o 指定输出格式
-- all - namespaces :显示所有命名空间
-- show - labels :显示所有标签 - l app=nginx :筛选指定标签的资源
例如:

2.4.命名空间操作

2.5.创建Deloyment(副本控制器)

2.6.登陆容器与删除Pod

2.7.扩缩容与删除

二.项目生命周期管理
项目的生命周期包括:
创建 → 发布 → 更新 → 回滚 → 删除
1.创建阶段(kubectl create)

2.发布阶段(kubectl expose)

service类型:

端口类型:
● port
port 是 k8s 集群内部访问 service 的端口,即通过 clusterIP: port 可以从 Pod 所在的 Node 上访问到service
● nodePort
nodePort 是外部访问 k8s 集群中 service 的端口,通过 nodeIP: nodePort 可以从外部访问到某个
service
● targetPort
targetPort 是 Pod 的端口,从 port 或 nodePort 来的流量经过 kube-proxy 反向代理负载均衡转发到后端 Pod 的 targetPort 上,最后进入容器
● containerPort
containerPort 是 Pod 内部容器的端口, targetPort 映射到 containerPort
查看网络状态与服务端口

访问日志:

3.更新阶段(kubectl set)

4.回滚阶段(kubectl rollout)

5.删除阶段(kubectl delete)

三.发布策略
金丝雀发布( Canary Release )
Deployment 控制器支持自定义控制更新过程中的滚动节奏,如 " 暂停 (pause)" 或 " 继续 (resume)" 更新操作。比如等待第一批新的Pod 资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod 应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod 资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。
注意:
这里还有滚动发布,灰度发布,蓝绿发布,以及重建发布,可以自行了解。

四.声明式资源管理方法
1.基本原理
适合于对资源的修改操作
声明式资源管理方法依赖于资源配置清单文件对资源进行管理
资源配置清单文件有两种格式:yaml (人性化,易读), json (易于 api 接口解析)
对资源的管理,是通过事先定义在统一资源配置清单内,再通过陈述式命令应用到 k8s 集群里
语法格式: kubectl create/apply/delete -f xxxx.yaml
2.查看与解释配置清单

3.修改资源配置清单并应用

4.删除资源配置清单
陈述式删除:

声明式删除:

总结:
今天主要是讲解了关于Kubernetes的基础命令、项目生命周期管理、发布策略以及声明式资源管理,需要注意的是,声明式资源管理需要我们对yaml文件具有一定的认识和编写能力,希望对读者们有所帮助!