⚡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 版本
相关推荐
白手小弟2 小时前
docker部署Stirling-PDF
docker·容器·pdf
HoweWWW3 小时前
k8s 微服务 ingress-nginx 金丝雀发布
微服务·容器·kubernetes
向往风的男子3 小时前
【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(三十一)
学习·容器·kubernetes
HoweWWW3 小时前
k8s中的存储
linux·容器·kubernetes
djgxfc4 小时前
Docker概述
spring cloud·云原生·eureka
苏supper4 小时前
k8s的NodeIP、PodIP、ClusterIP、ExternalIP
kubernetes
夜猫逐梦4 小时前
【docker】阿里云使用docker,2024各种采坑
阿里云·docker·容器
c1tenj24 小时前
docker发布redis容器
redis·docker·容器
研究司马懿5 小时前
【云原生监控】Prometheus之PushGateway
云原生·prometheus·云原生监控·企业级监控系统·promesql
骇客野人9 小时前
【开端】docker基线漏洞修复
运维·docker·容器