首页 > 技术文章 > k8s操作

zhangyupengzuishuai 2021-11-02 22:06 原文

 基本信息查看

kubectl get <resource> [-o wide | json | yaml ]  [ -n namesapce ]

获取资源的相关信息,-n 指定命令空间,-o 指定输出格式

resource可以是具体资源名称,如pod nginx-xxx;也可以是资源类型,如pod:或者all{仅展示集中核心资源,并不完整}

-all-namesapces 或 -A:表示显示所有命令空间

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

-l app:仅显示标签为app的资源

-l app-nginx:仅显示包含app标签,且值为nginx的资源

查看命令空间

命令空间的作用:用于允许不同命令空间的相同类型的资源重名的

查看master节点状态

指定default命令空间的资源

创建命名空间qwe

查看指定资源

删除命名空间qwe

描述某个资源的详细信息

 查看命名空间kube-system中的pod信息

 kubectl exec可跨主机登录容器,docker exec只能在容器所在的主机上登录

 删除(重启)pod

 强行删除pod

 扩缩容

 删除副本控制器

 

项目的生命周期:创建--->发布--->更新--->回滚--->删除

 创建kubectl run命令

  • 创建并运行一个或多个容器镜像
  • 创建一个deployment或job来管理容器

 发布kubect expose命令

将资源暴露为新的Service

Kubernetes 之所以需要 Service,一方面是因为 Pod 的 IP 不是固定的(Pod可能会重建),另一方面则是因为一组 Pod 实例之间总会有负载均衡的需求。Service通过 Label Selector实现的对一组的 Pod 的访问。对于容器应用而言,Kubernetes 提供了基于VIP(虚拟IP)的网桥的方式访问Service再由 Service 重定向到相应的 Pod。

service的类型:

  • ClusterIP∶提供一个集群内部的虚拟IP以供Pod访问(service默认类型,一般是服务与服务之间使用)
  • NodePort∶在每个Node上打开一个端口以供外部访问,Kubernetes将会在每个Node上打开一个端口并且每个Node的端口都是一样的,通过NodeIp:NodePort的方式Kubernetes集群外部的程序可以访问Service。
注∶每个端口只能是一种服务,端口范围只能是 30000-32767。
  • LoadBalancer∶ 通过外部的负载均衡器来访问,通常在云平台部署LoadBalancer还需要额外的费用。

查看pod网络状态详细信息和Service暴露的端口

 查看关联后端的节点

 查看Service的描述信息

 在node01节点上操作,查看负载均衡端口

 更新kubectl set

更新现有应用资源一些信息

更新nginx版本

 回滚kuebctl rollout

对资源进行回滚管理

查看历史版本

 执行回滚到上一个版本

 检查回滚状态

 删除kubectl delete

1、删除副本控制器

 2、删除service

 金丝雀发布(Canary Release)

Deployment控制器自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续”更新操作。比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分的新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。

(1)更新deployment的版本,并配置暂停deployment

 

 

 

 

 确保更新的pod没有问题了,继续更新

 

 查看最后的更新情况

 

 声明管理方法:

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

查看资源配置清单

 

 解释资源配置清单

 

 

 修改资源配置清单并应用

离线修改:

修改yaml文件,并用kubectl apply -f xxxx.yaml  文件使之生效

注:当apply不生效时,先使用delete清除资源,再apply创建资源

 

 

 在线修改:

直接使用kubectl edit service nginx 在线编辑资源配置清单并保存退出即时生效

注:此修改方式不会对yaml文件内容修改

 

 

 删除资源配置清单

陈述式删除:

 

 声明式删除:

 

推荐阅读