⚡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 版本
相关推荐
努力的小T38 分钟前
使用 Docker 部署 Apache Spark 集群教程
linux·运维·服务器·docker·容器·spark·云计算
东风微鸣2 小时前
TTRSS 迁移实战
docker·云原生·kubernetes·可观察性
Smile_Gently4 小时前
Docker
云原生·eureka
转身後 默落4 小时前
04.Docker 镜像命令
docker·容器·eureka
IT_张三4 小时前
Docker+Kubernetes_第一章_Docker入门
java·docker·kubernetes
Diligent_lvan5 小时前
聊聊istio服务网格
云原生·istio
企鹅侠客5 小时前
kube-proxy怎么修改ipvs规则?
云原生·kubernetes·kubelet
仇辉攻防5 小时前
【云安全】云原生- K8S 污点横移
web安全·网络安全·云原生·容器·kubernetes·k8s·安全威胁分析
人工干智能8 小时前
科普:“docker”与“docker compose”
运维·docker·容器
神马都会亿点点的毛毛张8 小时前
【Docker教程】万字长文详解Docker命令
java·运维·后端·docker·容器