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

k8s 资源管理方式

k8s中资源管理方式可以划分为下面的几种:命令式对象管理、命令式对象配置、声明式对象配置。

  • 命令式对象管理

命令式对象管理:直接使用命令的方式来操作k8s资源, 这种方式操作简单,但是无法审计和追踪。

kubectl run nginx-pod --image=nginx:1.17.1 --port=80
  • 命令式对象配置

通过命令和配置文件来操作k8s资源,这种方式可以审计和追踪,但是项目大的时候配置文件多,操作麻烦。

kubectl create/patch/delete -f nginx-pod.yaml
  • 声明式对象配置

通过apply命令和配置文件去操作k8s资源,这种方式操作简单,支持目录操作,但是意外的情况难以调试。

kubectl apply -f nginx-pod.yaml
kubectl 命令

基本语法

kubectl [command] [type] [name] [flags]

○ command:指定要对资源执行的操作,如:create、get 、delete 等。
○ type:指定资源的类型,如:deployment 、pod 、service 等。
○ name:指定资源的名称,名称大小写敏感。
○ flags:指定额外的可选参数。

namespace 操作相关
  1. 获取所有命名空间

kubectl get namespace(ns)

  1. 创建命名空间

kubectl create namespace(ns) hello

  1. 删除命名空间(默认命名空间无法删除)

kubectl delete namespace(ns) hello

  1. 使用配置文件的方式创建命名空间

kubectl apply -f hello.yaml

  1. 使用配置文件的方式删除命名空间

kubectl delete -f hello.yaml

hello.yaml

apiVersion: v1
kind: Namespace
metadata:name: hello
pod 操作相关
  1. 查看默认命名空间和指定命名空间的pod

kubectl get pod(pods) | kubectl get pod -n xxx

  1. 查看所有命名空间的pod

kubectl get pods --all-namespaces

  1. 创建pod

kubectl apply -f xxx.yaml

apiVersion: v1
kind: Pod
metadata:name: pod1
spec:containers:- name: nginx-podimage: nginx:latestimagePullPolicy: IfNotPresentports:- name: nginxportcontainerPort: 80
  1. 删除pod

kubectl delete pods xxx -n yyy

  1. 查看指定pod 中的日志

kubectl logs -f pod名称 -n xxx

  1. 在pod内部执行命令

kubectl exec -it xxx – /bin/bash

service 操作相关

在k8s 集群中,pod 是应用程序的载体,我们可以通过pod 的ip来访问应用程序,但是pod的ip地址不是固定的,这就意味着不方便直接采用pod的ip来对服务进行访问,为了解决这个问题,k8s提供了service资源。service资源会提供对同一个服务的多个pod进行聚合,并且提供统一的入口地址,通过访问service的入口地址就能访问到后面的pod 服务。

  1. 创建service

kubectl expose --name=nginxsvc deploy nginx --port=80

  1. 查看service

kubectl get service -n xxx

  1. 删除service

kubectl delete service(svc) xxx - n yyy

  1. 修改service端口

kubectl edit svc/svc名称

service三种不同种类的type

ClusterIP: 默认分配一个集群内部可以访问的虚拟IP

NodePort: 在每个node上分配一个端口作为外部的访问入口

LoadBalancer: 与NodePort类似,在每个节点上启用一个端口来暴露服务,除此之外,K8S会请求底层云平台(aliyun, aws等)上负载均衡器,将每个Node([NodeIP]:[NodePort])作为后端添加进去.创建LoadBalancer类型的Service会自动创建和绑定外部LoadBalancer到节点映射的NodePort上。

ExternalName:通过返回带有该名称的 CNAME 记录,使用任意名称(由 spec 中的externalName指定)公开 Service 。不使用代理。这种类型需要 kube-dns 的 v1.7 或更高版本。

deployment 操作相关
  1. 查看deployment列表

kubectl get deployment -n xxx

  1. deployment自动伸缩

kubectl scale --replicas=3 deployment nginx

  1. 查看历史记录

kubectl rollout history deployment 应用部署名称

  1. 默认回滚到上一个版本

kubectl rollout undo deployment 应用部署名称

  1. 默认回滚到第一个版本

kubectl rollout undo deployment 应用部署名称 --to-revision=1

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

相关文章:

  • Golang Gin 接口返回 Excel 文件
  • 实战之巧用header头
  • [AUTOSAR][诊断管理][ECU][$36] 数据传输
  • sw 怎么装新版本
  • 正点原子嵌入式linux驱动开发——Linux 音频驱动
  • conda相关的命令操作
  • 如何快速使用Vue3在electron项目开发chrome Devtools插件
  • 干洗店服务预约小程序有什么作用
  • 【跟小嘉学 Rust 编程】三十四、Rust的Web开发框架之一: Actix-Web的进阶
  • 软件安装(1)——Xshell安装
  • Kafka基本原理、生产问题总结及性能优化实践 | 京东云技术团队
  • java8利用Stream方法求两个List对象的交集、差集与并集(即:anyMatch和allMatch和noneMatch的区别详解)
  • Centos7下生成https自签名证书
  • 从中序和后序遍历序列构造二叉树
  • Apache ActiveMQ (版本 < 5.18.3) (CNVD-2023-69477)RCE修复方案/缓解方案
  • 61. 旋转链表、Leetcode的Python实现
  • 基于tpshop开发多商户源码支持手机端+商家+门店 +分销+淘宝数据导入+APP+可视化编辑
  • ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
  • HTML简单实现v-if与v-for与v-model
  • 【学习笔记】[PA2021] Fiolki 2
  • 计算1到100的和
  • C++下OpenMP耗时统计
  • PTA 函数题(C语言)-- 阶乘计算升级版
  • 内网穿透入门
  • Pickle pyhton反序列化
  • 动静分离技术
  • STM32单片机智能小车一PWM方式实现小车调速和转向
  • 灰狼优化算法(GWO)python
  • 项目知识点总结-住房图片信息添加-Excel导出
  • 第三届iEnglish全国ETP大赛决赛即将启动