k8s 常用的命令

k8s 常用的操作

  • 查找资源 kubectl get: 获取所有的资源,包括node、namespace、pod 、service、deployment等,可以展示一个或者多个资源。

  • 创建资源 kubectl create :Kubernetes 的清单文件可以用 json 或 yaml 定义。

  • 更新资源 kubectl apply :将配置更改应用于Kubernetes资源对象,适合进行部分更新。

  • 删除资源 kubectl delete:删除对应的资源。

nodes 节点:

  • 查看nodes节点:

    kubectl get nodes

namespace( 命名空间):

  • 查看所有namespace(命名空间 ):

    kubectl get ns

Deployment:

  • 列出所有命名空间中Deployment资源 :

    kubectl get deployments --all-namespaces

  • 列出指定命名空间的 Deployment资源 :

    kubectl get deployments --namespace 命名空间名称

  • 列出指定 deployment:

比如 deployment 名称为:my-deploy,如下:

复制代码
kubectl get deployment  deployment 名称  --namespace 命名空间名称

如果不指定 命名空间名称,就会视为 default(默认的) 命名空间。如果命名空间搞错了,在命名空间里没有这个 deployment ,会提示:

复制代码
Error from server (NotFound):  "" not found
  • 用deployment创建一个pod:

首先编辑 deployment-demo.yml ,

复制代码
apiVersion: apps/v1  # deployment对应的api版本
kind: Deployment     # 创建的资源是deployment
metadata:
  name: myDeploy-v1    # deployment的名字
spec:
  replicas: 2     # deployment管理的pod副本数
  selector:       # 标签选择器
    matchLabels:  # 筛选定义的标签需要跟template.metadata.labels定义的标签一致
      font: myDeploy
      version: v1
  template:
    metadata:
      labels:    # Pod具有的标签
        font: myDeploy
        version: v1
    spec:   #定义容器的属性
      containers:  
      - name: myDeployment
        image: janakiramm/myapp:v1     # 容器使用的镜像
        imagePullPolicy: IfNotPresent  # 镜像拉取策略
        ports:
        - containerPort: 80     # 容器里的应用的端口

接着 执行 kubectl apply 命令, kubectl apply 既可以创建资源,也可以动态更新资源:

复制代码
 kubectl apply -f deployment-demo.yml
  • 用于查看与特定 Deployment 关联的 Pod 详情:

    kubectl describe deployment deployment名称 --namespace 命名空间名称

这个命令会显示 Deployment 的详细状态,包括它创建的 Pod 的信息。

如果不指定 命名空间名称,就会视为 default(默认的) 命名空间。如果命名空间搞错了,在命名空间里没有这个 deployment ,会提示:

复制代码
Error from server (NotFound):  "" not found

Pod 相关的命令:

  • 列出所有 命名空间(namespace) 中的所有 pod:

    kubectl get pods --all-namespaces

  • 列出所有 pod 并显示详细信息:

    kubectl get pods -o wide

  • 查看某个命名空间(namespace) 中的所有 pod:

比如 查看 namespace 为 kube-system 中的所有 pod,如下:

复制代码
kubectl get pod -n kube-system
  • 创建一个 pod :
yaml 复制代码
 kubectl create -f ./my-pod.yaml 

my-pod.yaml 这个文件的格式,简单示例如下:

复制代码
apiVersion: v1
kind: Pod  
metadata:  
  name: pod-redis
  labels:
    name: redis
spec: 
  containers:
  - name: pod-redis
    image: docker.io/redis  
    ports:
    - containerPort: 80 #容器对外的端口
  • k8s 进入 pod:

通过 shell 命令,进行容器。进入容器后,就可以进行ls 、cd ... 之类的 linux 命令了。

复制代码
kubectl exec -ti pod名称 -n 命名空间  -- /bin/sh
  • 输出 pod 的日志:

    kubectl logs pod名称

  • 输出 pod 中容器的日志(pod 中有多个容器):

    kubectl logs pod名称 -c 容器名称

其他:

  • 通过yaml文件查询资源:

    kubectl get -f xxx.yaml

  • 查询资源:

    kubectl get resourcequota

  • 查询endpoints:

    kubectl get endpoints

参考资料:

https://www.cnblogs.com/chaojiyingxiong/p/17150507.html

https://blog.csdn.net/qq_42264264/article/details/130828134

https://www.cnblogs.com/-wenli/p/13632474.html

相关推荐
牛奔几秒前
Docker Compose 解决服务间 DNS 解析失败问题
运维·docker·容器
L16247635 分钟前
Docker 安装部署全流程使用指南(Linux 通用版)
linux·docker·容器
Mr. Cao code1 小时前
MySQL数据卷实战:持久化存储秘籍
数据库·mysql·docker·容器
桂花树下的猫1 小时前
ubuntu20.04上docker部署
运维·docker·容器
自不量力的A同学1 小时前
Docker 29.1.4
运维·docker·容器
木童6621 小时前
K8s 组网方案深度解析:Flannel vs Calico 原理与选型
云原生·容器·kubernetes
刘一说2 小时前
微服务配置中心:从痛点到实践——Nacos深度应用指南
spring boot·spring cloud·微服务·云原生·架构
DeepFlow 零侵扰全栈可观测2 小时前
DeepFlow 实践:利用 eBPF 实现覆盖从网关到数据库的全栈分布式追踪
网络·分布式·云原生·云计算
无心水3 小时前
【分布式利器:腾讯TSF】8、Service Mesh云原生演进:Java应用零侵入接入腾讯TSF全解析
分布式·云原生·envoy·service_mesh·service mesh·分布式利器·腾讯tsf
Mr.徐大人ゞ3 小时前
Docker 详解与部署微服务实战
docker·微服务·容器