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

⚡4. Kubernetes核心资源管理操作实战

文章目录

    • `kubectl [command] [TYPE] [NAME] [flags]`
    • `kubectl run 资源名称 --image=镜像名称 --port=端口号`
    • `kubectl create -f 配置文件名称.yaml` `kubectl apply -f 配置文件名称.yaml`
    • 快速编写yaml文件,通过命令导出新的yaml文件
    • Kubernetes常见资源类型和缩写

kubectl [command] [TYPE] [NAME] [flags]

  • commad:对资源具体的操作,如create创建、 get获取 、 delete删除
  • TYPE:指定资源类型,大小写敏感
  • NAME:指定资源的名称,大小写敏感,如果省略名称则显示所有资源
  • flags:指定可选的参数,如可用-s或者-server指定Kubernetes API server的地址和端口

example:

#获取全部节点
kubectl get node#获取全部pod
kubectl get pod#查看某个pod内容
kubectl get pod pod_name#获取全部名称空间
kubectl get ns#查看创建的资源
kubectl get pod,svc,deploy# 删除nginx pod,如果是靠deploy控制器创建的pod, 直接删除则会自动创建新的;
kubectl delete pod pod名称# 如果需要删除则直接删除depoly控制器即可,pod会被删除
kubectl delete deploy xdclass-nginx
kubectl delete svc xdclass-nginx

kubectl run 资源名称 --image=镜像名称 --port=端口号


kubectl run xdclass-nignx-pod --image=nginx:1.23.0 --port=80kubectl create deployment xdclass-nginx --image=nginx:1.23.0

kubectl create -f 配置文件名称.yaml kubectl apply -f 配置文件名称.yaml

yaml 例子:

apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx-deployment
spec:replicas: 1selector:matchLabels:app: nginx-podtemplate:metadata:labels:app: nginx-podspec:containers:- name: nginximage: nginx:1.23.0imagePullPolicy: IfNotPresentports:- containerPort: 80
apiVersion: v1
kind: Pod
metadata:name: nginx
spec:containers:- image: nginx:1.23.0name: podports:- name: nginx-portcontainerPort: 80protocol: TCP

**kubectl create 和 kubectl apply的区别: **

  • kubectl create 命令首次执行时会创建资源,当再次执行的时候会报错,因为资源名称在同一命名空间内是唯一的
  • kubectl apply在首次执行的时候也会创建对应的资源,当再次执行的时候会根据配置文件进行升级、扩容等操作,即使配置文件没有变化也不影响

快速编写yaml文件,通过命令导出新的yaml文件

#创建nginx资源文件并且不启动资源
kubectl create deployment xdclass-nginx --image=nginx:1.23.0 -o yaml --dry-run=client > nginx.yaml#查看nginx.yaml
cat nginx.yaml

pod的yaml文件示例:

# pod的最基础的yaml文件最少需要以下的几个参数
apiVersion: v1 # API版本号,注意:具有多个,不同的对象可能会使用不同API
kind: Pod  # 对象类型,pod
metadata:  # 元数据name: string # POD名称namespace: string # 所属的命名空间
spec: # specification of the resource content(资源内容的规范)containers: # 容器列表- name: string # 容器名称image: string # 容器镜像

必须存在的属性

参数名字段类型说明
versionStringk8s API的版本,可使用kubectl api-versions命令查询
kindString这里指定k8s资源的类型,比如Pod、Deployment
metadataObject元数据对象,固定写值metadata
metadata-nameString元数据对象的名字,比如命名pod的名字
metadata-namespaceString元数据对象的命名空间
specObject详细定义对象,固定值写Spec
spec.container[]listspec对象的容器列表定义
spec.container[].nameString容器对象的名字
spec.container[].imageString定义要用到的对象名称

Kubernetes常见资源类型和缩写

:::warning
常用资源分类和缩写

  • 节点 nodes ,缩写 no
  • 名称空间 namespaces,缩写ns
  • pod资源 pods, 缩写 po
  • pod控制器
    • replicasets,缩写rs
    • deployments,缩写 deploy
  • 服务发现
    • 统一pod对外接口 services ,缩写 svc
    • 统一pod对外接口ingress ,缩写 ing
  • 存储资源
    • persistentvolumes,缩写pv
    • persistentvolumeclaims,缩写pvc
      :::

常用资源操作命令

命令分类命令翻译
基本命令create创建资源
delete删除资源
edit编辑资源
get获取资源
patch更新资源
explain解释资源
运行和调试run运行指定的镜像
expose暴露服务
describe描述资源内部信息
logs打印容器在 pod 中的日志
attach进入运行中的容器
exec执行容器中的一个命令
cp在Pod内外复制文件
scale扩容/缩容Pod的数量
autoscale扩容/缩容Pod的数量
高级命令applyrc
label标签
其他命令cluster-info集群信息
version版本
http://www.lryc.cn/news/416946.html

相关文章:

  • 【Wireshark 抓 CAN 总线】Wireshark 抓取 CAN 总线数据的实现思路
  • Linux网络编程3
  • gitlab 服务器安装
  • 【pytorch】全连接网络简单二次函数拟合
  • git提交到本地仓库了,怎么撤回
  • lua学习(1)
  • SQL报错注入之updatexml
  • 单元测试的重要性
  • mysql线上查询数据注意锁表问题
  • UE5 右键菜单缺少Generate Visual Studio project files
  • 前端性能优化-webpack构建优化
  • Traefik:部署与实战
  • [Spring] SpringBoot统一功能处理与图书管理系统
  • 实现吸顶效果,一个页面多个元素吸顶效果
  • 【C++入门(下)】—— 我与C++的不解之缘(二)
  • 【数据结构】哈希应用-STL-位图
  • Unbuntu 服务器- Anaconda安装激活 + GPU配置
  • python 装饰器记录函数用时
  • 实验10 任何一个非0自然数m的立方均可写成m个连续奇数之和。
  • Jenkins的安装方式
  • 网络之华为S5700S-52P-LI交换机系统恢复
  • 蜂窝网络架构
  • 培训第二十二天(mysql数据库主从搭建)
  • 速盾:CDN回源失败都有什么原因?
  • C语言 | Leetcode C语言题解之第328题奇偶链表
  • 8月6日笔记
  • 爱可声助听器:在全球听力市场中破冰前行
  • 华为OD面试 - 最佳升级时间窗(Java JS Python C C++)
  • LE-50821F/FA激光扫描传感器|360°避障雷达之性能参数与配置清单说明
  • 精准洞察农田生态,智慧农业物联网环境监测与数据采集系统来袭