目录
一、kubectl 简介
kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理k8s各种资源的一种有效途径。
对资源的增、删、查操作比较方便,但对改的操作就不容易了。
二、kubectl 的使用
1.基础用法
(1)配置kubectl自动补全
(2)查看版本信息
(3)查看资源对象信息
(4)查看集群信息
(5)查看日志
2.查看k8s集群信息
(1) 查看master节点状态
(2)查看命名空间
命名空间的作用:用于允许不同命名空间的相同类型的资源重名
(3)创建和删除命名空间
注:删除命名空间会将其下的资源全部删除,所以慎用
3.创建和删除pod
(1)指定pod控制器和容器镜像创建pod
(2)删除pod
但由于存在deployment/rc之类的副本控制器期望副本数量,删除pod也会重新拉起来。真正需要删除,需要删除其控制器。
4.查看资源详细信息
5.登入容器
6.扩缩容
三、项目的生命周期
1.创建
创建并运行一个或多个容器镜像;创建一个deploy或 job管理容器。
2.发布
将资源暴露为新的service
暴露默认的 ClusterIP 类型服务
暴露 NodePort 类型服务
以上转发可以在ipvsadm中查看到(我们配置使用的是ipvs转发,性能最好)
3.更新
可以对以下资源进行更新
4.回滚
回滚操作的使用方式
5.删除
删除所有资源代表一个项目的结束
四、金丝雀发布
Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,
仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。
1.创建deployment
2.暴露服务
3.更新并在第一轮完成后暂停
4.测试无误后继续更新
至此就完成了金丝雀发布过程