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

文章目录

    • [`kubectl [command] [TYPE] [NAME] [flags]`](#kubectl [command] [TYPE] [NAME] [flags])
    • [`kubectl run 资源名称 --image=镜像名称 --port=端口号`](#kubectl run 资源名称 --image=镜像名称 --port=端口号)
    • [`kubectl create -f 配置文件名称.yaml` `kubectl apply -f 配置文件名称.yaml`](#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:

bash 复制代码
#获取全部节点
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=端口号

bash 复制代码
kubectl run xdclass-nignx-pod --image=nginx:1.23.0 --port=80

kubectl create deployment xdclass-nginx --image=nginx:1.23.0

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

yaml 例子:

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
   name: nginx-deployment
   labels:
      app: nginx-deployment
spec:
   replicas: 1
   selector:
      matchLabels:
         app: nginx-pod
   template:
      metadata:
           labels:
              app: nginx-pod
      spec:
         containers:
         - name: nginx
             image: nginx:1.23.0
             imagePullPolicy: IfNotPresent
             ports:
             - containerPort: 80
yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - image: nginx:1.23.0
    name: pod
    ports:
    - name: nginx-port
      containerPort: 80
      protocol: TCP

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

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

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

bash 复制代码
#创建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文件示例:

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 # 容器镜像

必须存在的属性

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

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的数量
高级命令 apply rc
label 标签
其他命令 cluster-info 集群信息
version 版本
相关推荐
小扳3 小时前
微服务篇-深入了解 MinIO 文件服务器(你还在使用阿里云 0SS 对象存储图片服务?教你使用 MinIO 文件服务器:实现从部署到具体使用)
java·服务器·分布式·微服务·云原生·架构
aherhuo13 小时前
kubevirt网络
linux·云原生·容器·kubernetes
陌北v114 小时前
Docker Compose 配置指南
运维·docker·容器·docker-compose
catoop14 小时前
K8s 无头服务(Headless Service)
云原生·容器·kubernetes
阿里嘎多学长14 小时前
docker怎么部署高斯数据库
运维·数据库·docker·容器
小峰编程15 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
小马爱打代码15 小时前
云原生服务网格Istio实战
云原生
liuxuzxx15 小时前
1.24.1-Istio安装
kubernetes·istio·service mesh
G_whang16 小时前
windos 安装docker
运维·docker·容器
道一云黑板报16 小时前
Flink集群批作业实践:七析BI批作业执行
大数据·分布式·数据分析·flink·kubernetes