Kubernetes(K8s) kubectl 常用命令

文章目录

      • 一、常用命令
        • 1.1 kubectl describe 命令
      • 二、kubectl 命令中的简写
      • 三、Helm
        • 3.1 常用命令:
        • 3.2 遇到的问题
          • 3.2.1 cannot re-use a name that is still in use
      • 四、Containerd

一、常用命令

  检查 k8s 各节点状态,确保k8s集群各节点状态正常:

[root@k8s-master ~]# kubectl get nodes 
NAME         STATUS   ROLES                  AGE    VERSION
k8s-master   Ready    control-plane,master   130d   v1.23.1
k8s-node01   Ready    <none>                 130d   v1.23.1
k8s-node02   Ready    <none>                 130d   v1.23.1

  查看k8s的版本:

[root@k8s-master ~]# kubectl version
Client Version: v1.23.1
Server Version: v1.23.1

  kubectl 进入容器:

kubectl exec -it mysql-master-0 -n mysql -- /bin/bash
# 或者
kubectl exec -itn mysql pod/mysql-master-0 -- mysql -uroot -proot

  检查 k8s 集群的系统 pod 状态:

[root@k8s-master ~]# kubectl get pods -n kube-system 
NAME                                       READY   STATUS    RESTARTS     AGE
calico-kube-controllers-7bc6547ffb-2nf66   1/1     Running   1 (8d ago)   130d
calico-node-8c4pn                          1/1     Running   1 (8d ago)   130d
calico-node-f28qq                          1/1     Running   1 (8d ago)   130d
calico-node-wmc2j                          1/1     Running   1 (8d ago)   130d
coredns-6d8c4cb4d-6gm4x                    1/1     Running   1 (8d ago)   130d
coredns-6d8c4cb4d-7vxlz                    1/1     Running   1 (8d ago)   130d
etcd-k8s-master                            1/1     Running   1 (8d ago)   130d
kube-apiserver-k8s-master                  1/1     Running   1 (8d ago)   130d
kube-controller-manager-k8s-master         1/1     Running   1 (8d ago)   130d
kube-proxy-8dfw8                           1/1     Running   1 (8d ago)   130d
kube-proxy-ghzrv                           1/1     Running   1 (8d ago)   130d
kube-proxy-j867z                           1/1     Running   1 (8d ago)   130d
kube-scheduler-k8s-master                  1/1     Running   1 (8d ago)   130d

  检查 k8s 集群的服务 servic 状态:kubectl get svc -A

  检查 k8s 集群控制器状态:kubectl get deploy -Akubectl get statefulsets -Akubectl get daemonsets -A

  StatefulSet、Deployment 和 DaemonSet 是 Kubernetes 中常用的控制器,用于管理不同类型的应用。它们之间有以下几点区别:

StatefulSet:

  • 用于管理有状态应用程序,如数据库。
  • 每个Pod都有一个唯一的稳定标识符,可以持久化地保留在Pod的整个生命周期中。
  • 可以按照指定的顺序部署、扩展和终止Pod,以确保有状态应用程序的稳定性。
  • 可以为每个Pod提供独立的持久化存储。

Deployment:

  • 用于管理无状态应用程序,如Web服务。
  • 负责确保指定数量的Pod副本运行在集群中,无需关注Pod的顺序或标识符。
  • 可以进行滚动更新,快速部署新版本的应用程序,并确保不中断服务。
  • 适用于需要水平扩展的应用程序,例如负载均衡的Web服务。

DaemonSet:

  • 用于在集群中的每个节点上运行一个副本的Pod,通常用于运行后台任务或监控代理。
  • 与Deployment不同,DaemonSet确保每个节点都有一个Pod副本运行,而不管节点的数量如何变化。
  • 可以用于部署一些与节点相关的服务,例如日志收集器或网络代理。
1.1 kubectl describe 命令

  describe 获得的是 resource 集群相关的信息,如某个 pod 并不是在 running 状态,这时需要获取更详尽的状态信息时,查相关日志信息,就应该使用 describe 命令。describe 常用的命令如下:

  查看某个 pod 的详细信息:

kubectl describe pod hadoop-hadoop-yarn-rm-0 -n hadoop

  显示所有 Node 的详细信息:

kubectl describe nodes

  显示所有 Pod 的详细信息:

kubectl describe pods

  显示一个 node 的详细信息:

kubectl describe nodes k8s-minion

  显示一个pod的详细信息:

kubectl describe pods/nginx

  显示 pod.json 中的资源类型和名称指定的 pod:

kubectl describe -f pod.json

  显示所有包含 label name=myLabel 的 pod:

kubectl describe po -l name=myLabel

  显示所有被 replication controller “frontend” 管理的 pod(rc创建的 pod 都以 rc 的名字作为前缀):

kubectl describe pods frontend

注意:不同命令之间的选项都是相通,可以灵活使用。describe 命令同 get 类似,但是 describe 不支持 -o 选项。

参考:Kubernetes(K8s) kubectl describe常用命令

二、kubectl 命令中的简写

  kubectl 命令中可以使用的缩写,具体如下:

certificatesigningrequests (缩写 csr)
componentstatuses (缩写 cs)
configmaps (缩写 cm)
customresourcedefinition (缩写 crd)
daemonsets (缩写 ds)
deployments (缩写 deploy)
endpoints (缩写 ep)
events (缩写 ev)
horizontalpodautoscalers (缩写 hpa)
ingresses (缩写 ing)
limitranges (缩写 limits)
namespaces (缩写 ns)
networkpolicies (缩写 netpol)
nodes (缩写 no)
persistentvolumeclaims (缩写 pvc)
persistentvolumes (缩写 pv)
poddisruptionbudgets (缩写 pdb)
pods (缩写 po)
podsecuritypolicies (缩写 psp)
replicasets (缩写 rs)
replicationcontrollers (缩写 rc)
resourcequotas (缩写 quota)
serviceaccounts (缩写 sa)
services (缩写 svc)
statefulsets (缩写 sts)
storageclasses (缩写 sc)

参考:
Kubernetes(K8s) kubectl replace常用命令

三、Helm

3.1 常用命令:

  列举 chart 仓库:

$ helm repo list
NAME       URL
stable     https://kubernetes-charts.storage.googleapis.com/
local      http://127.0.0.1:8879/charts

  卸载 release:

helm uninstall hbase-hdfs-ha -n hbase-hdfs-ha

  强制删除 release:

kubectl delete ns hbase-hdfs-ha --force

  语法检查:

helm lint ./hbase-hdfs-ha

  开始安装:

helm install hbase-hdfs-ha ./hbase-hdfs-ha -n hbase-hdfs-ha --create-namespace

  上述命令可以写入一个脚本中:

$ vim reinstall.sh
helm uninstall hbase-hdfs-ha -n hbase-hdfs-ha
# delete ns
kubectl delete ns hbase-hdfs-ha --forcehelm lint ./hbase-hdfs-ha# 开始安装
helm install hbase-hdfs-ha ./hbase-hdfs-ha -n hbase-hdfs-ha --create-namespace
3.2 遇到的问题
3.2.1 cannot re-use a name that is still in use
root@k8s-bigdata01:/home/xiaoqiang# helm install hadoop ./hadoop -n hadoop --create-namespace
Error: INSTALLATION FAILED: cannot re-use a name that is still in useroot@k8s-bigdata01:/home/xiaoqiang# kubectl get pods -n hadoop
NAMESPACE              NAME                                                READY   STATUS             RESTARTS        AGE
hadoop                 hadoop-hadoop-hdfs-dn-0                             0/1     Pending            0               19h
hadoop                 hadoop-hadoop-hdfs-nn-0                             0/1     Pending            0               19h
hadoop                 hadoop-hadoop-yarn-nm-0                             0/1     ImagePullBackOff   0               19h
hadoop                 hadoop-hadoop-yarn-rm-0                             0/1     ImagePullBackOff   0               19h
root@k8s-bigdata01:/home/xiaoqiang# kubectl get svc -n hadoop
NAMESPACE              NAME                                               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                               AGE
hadoop                 hadoop-hadoop-hdfs-dn                              ClusterIP   None             <none>        9000/TCP                              19h
hadoop                 hadoop-hadoop-hdfs-nn                              ClusterIP   None             <none>        9000/TCP,9870/TCP                     19h
hadoop                 hadoop-hadoop-yarn-nm                              ClusterIP   None             <none>        8088/TCP,8082/TCP,8042/TCP            19h
hadoop                 hadoop-hadoop-yarn-rm                              ClusterIP   None             <none>        8088/TCP                              19hroot@k8s-bigdata01:/home/xiaoqiang# helm -n hadoop ls -a
NAME  	NAMESPACE	REVISION	UPDATED                                	STATUS	CHART       	APP VERSION
hadoop	hadoop   	1       	2024-07-03 06:11:31.785366015 +0000 UTC	failed	hadoop-1.2.0	3.3.2      
root@k8s-bigdata01:/home/xiaoqiang# helm -n hadoop delete hadoop
release "hadoop" uninstalledroot@k8s-bigdata01:/home/xiaoqiang# kubectl get pods -n hadoop
No resources found in hadoop namespace.
root@k8s-bigdata01:/home/xiaoqiang# kubectl get svc -n hadoop
No resources found in hadoop namespace.

参考:
helm Error: INSTALLATION FAILED: cannot re-use a name that is still in use

四、Containerd

  主流容器运行时:

  • Docker:早期最流行的容器运行时,以其易用性和丰富的生态系统而闻名。Docker Engine实现了完整的容器生命周期管理,并提供了自己的镜像分发仓库和工具链。虽然Kubernetes已不再直接依赖Docker Engine,但许多集群仍使用Docker作为底层容器运行时。

  • containerd:由Docker公司开发,后成为CNCF项目。containerd专注于容器的生命周期管理,提供了一套轻量级、低层级的API,用于处理镜像下载、容器运行等核心功能。它通常与cri-containerd(实现了CRI的插件)一起使用,作为Kubernetes的容器运行时。

  • CRI-O:红帽主导的开源项目,专为Kubernetes设计,仅实现CRI接口,没有额外的API或CLI工具。CRI-O直接与OCI(Open Container Initiative)兼容的运行时(如runc)交互,管理容器生命周期。相比Docker和containerd,CRI-O更轻量、简洁。

  查看版本:

$ containerd --version
containerd github.com/containerd/containerd 1.7.12

  ctr 是一个用于管理 containerd 的命令行工具,可以用它来打包、拉取、上传镜像。以下是具体操作步骤:

  查看镜像:

ctr images list
# 或者
crictl images list命令介绍:
ctr:是containerd本身的CLI
crictl:是Kubernetes社区定义的专门CLI工具

  通过 docker 或者其他方式构建好一个镜像之后,可以使用 ctr 命令来打包该镜像:

#ctr images import [image_file]
#例如:
ctr images import /path/to/myimage.tar

  删除镜像

ctr images rm docker.io/library/ubuntu:latest

  可以使用 ctr 命令来拉取一个镜像:

#ctr images pull [image_name]
#例如:
ctr images pull docker.io/library/ubuntu:latest

  可以使用 ctr 命令来上传一个本地镜像到镜像仓库:

#ctr images push [image_name]
#例如:
ctr images push docker.io/myrepo/myimage:latest

  需要注意的是,需要先登录到仓库并获取授权,才能上传镜像。可以使用 ctr 命令的 login 子命令来登录仓库,例如:

ctr login docker.io -u myusername -p mypassword

参考:containerd容器ctr命令打包、拉取、上传镜像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/41286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

概率基础——矩阵正态分布matrix normal distribution

矩阵正态分布-matrix normal distribution 定义性质应用 最近碰到了这个概念&#xff0c;记录一下 矩阵正态分布是一种推广的正态分布&#xff0c;它应用于矩阵形式的数据。矩阵正态分布在多维数据分析、贝叶斯统计和机器学习中有广泛的应用。其定义和性质如下&#xff1a; 定…

Emacs之解决:java-mode占用C-c C-c问题(一百四十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【django项目使用easycython编译】Cannot convert Unicode string to ‘str‘ implicitly.

django项目编译遇到的问题 报错条件 需要编译的python源码里面的函数写了type hint&#xff0c;尤其是return的type hint&#xff0c; 当type hint是str时&#xff0c;但是变量确实f-string格式化后得到的&#xff0c;编译时会报错 报错原因 easycython会检查变量类型&…

软件开发中的原型开发与需求文档开发:哪个更优?

1. 引言 在软件开发过程中&#xff0c;选择合适的开发方法对于项目的成功至关重要。基于原型开发和基于需求文档开发是两种常见的开发方法&#xff0c;各自有其优点和缺点。在项目复杂性、客户需求和资源限制等因素的影响下&#xff0c;开发团队需要慎重选择适合的开发方法。 …

C++语言相关的常见面试题目(二)

1.vector底层实现原理 以下是 std::vector 的一般底层实现原理&#xff1a; 内存分配&#xff1a;当创建一个 std::vector 对象时&#xff0c;会分配一块初始大小的连续内存空间来存储元素。这个大小通常会随着 push_back() 操作而动态增加。 容量和大小&#xff1a;std::vec…

element-plus 的form表单组件之el-radio(单选按钮组件)

单选按钮组件适用于同一组类型的选项只能互斥选择的场景&#xff0c;就是支持单选。单选组件包含以下3个组件 组件名作用el-radio-group单选组组件&#xff0c;子元素可以是el-radio或el-radio-button&#xff0c;v-mode绑定单选组的响应式属性el-radio单选组件&#xff0c;la…

阶段三:项目开发---搭建项目前后端系统基础架构:任务9:导入空管基础数据

任务描述 本阶段任务是导入项目的基础数据&#xff0c;包括空管基础数据和离线的实时飞行数据&#xff08;已经脱敏&#xff09;。 任务指导 本阶段任务需要导入两种数据&#xff1a; 1、在MySQL中导入空管基础数据 kongguan.sql空管基础数据表说明&#xff1a; 1告警信息…

OpenCV直方图计算函数calcHist的使用

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 功能描述 图像的直方图是一种统计表示方法&#xff0c;用于展示图像中不同像素强度&#xff08;通常是灰度值或色彩强度&#xff09;出现的频率分布。具体来说…

对MsgPack与JSON进行序列化的效率比较

序列化是将对象转换为字节流的过程&#xff0c;以便在内存或磁盘上存储。常见的序列化方法包括MsgPack和JSON。以下将详细探讨MsgPack和JSON在序列化效率方面的差异。 1. MsgPack的效率&#xff1a; 优点&#xff1a; 高压缩率&#xff1a; MsgPack采用高效的二进制编码格式&…

Embedding理解

一、概念 Embedding 可以理解为一种将概念、物体或信息转换为数字序列的数值表示方法。它是沟通两个不同世界或领域的桥梁,能够把各种类型的数据(如文本、图像、视频等)映射到一个向量空间中。 在这个向量空间里,相似的项目(例如语义上相近的单词、相似的图像或相关的视…

cs231n作业1——SVM

参考文章&#xff1a;cs231n assignment1——SVM SVM 训练阶段&#xff0c;我们的目的是为了得到合适的 &#x1d44a; 和 &#x1d44f; &#xff0c;为实现这一目的&#xff0c;我们需要引进损失函数&#xff0c;然后再通过梯度下降来训练模型。 def svm_loss_naive(W, …

【Qt】Qt概述

目录 一. 什么是Qt 二. Qt的优势 三. Qt的应用场景 四. Qt行业发展方向 一. 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架&#xff0c;为应用程序开发者提供了建立艺术级图形界面所需的所有功能。 Qt是完全面向对象的&#xff0c;很容易扩展&#xff0c;同时Qt为开发…

从打印到监测:纳米生物墨水助力3D生物打印与组织监测平台?

从打印到监测&#xff1a;纳米生物墨水助力3D生物打印与组织监测平台&#xff1f; 在 3D 组织工程中&#xff0c;纳米生物墨水是将纳米材料与 ECM 水凝胶结合&#xff0c;以提高其打印性和功能性的重要策略。纳米生物墨水可以增强水凝胶的机械性能、导电性、生物活性&#xff…

汽车报价资讯app小程序模板源码

蓝色实用的汽车报价&#xff0c;汽车新闻资讯&#xff0c;最新上市汽车资讯类小程序前端模板。包含&#xff1a;选车、资讯列表、榜单、我的主页、报价详情、资讯详情、询底价、登录、注册、车贷&#xff0c;油耗、意见反馈、关于我们等等。这是一款非常全的汽车报价小程序模板…

MNIST 数据集 ubyte 格式介绍

train-images-idx1-ubyte 文件是用于存储 MNIST 数据集中手写数字图像数据的文件。与标签文件类似&#xff0c;这个文件使用的是一种简单而紧凑的二进制格式。具体的文件格式如下&#xff1a; 文件头&#xff08;Header&#xff09;&#xff1a; 文件头部分包含了一些描述文件内…

Ubuntu 20版本安装Redis教程,以及登陆

第一步 切换到root用户&#xff0c;使用su命令&#xff0c;进行切换。 输入&#xff1a; su - 第二步 使用apt命令来搜索redis的软件包&#xff0c;输入命令&#xff1a;apt search redis 第三步 选择需要的redis版本进行安装&#xff0c;本次选择默认版本&#xff0c;redis5.…

Emacs 的优点及与 DE 的比较

一、引言 在编程领域&#xff0c;对于工具的选择一直是开发者们热议的话题。今天&#xff0c;我们来探讨一下 Emacs 及其所具有的优点&#xff0c;并思考使用 Emacs 写程序是否真的比使用集成开发环境&#xff08;IDE&#xff09;更方便。 二、Emacs 的优点 高度可定制性 可以…

mac如何安装nvm

​ vue项目开发&#xff0c;热更新&#xff0c;webpack&#xff0c;前辈造的轮子&#xff1a;各类的工具&#xff0c;库&#xff0c;像axios,qs,cookie等轮子在npm上可以拿来直接用&#xff0c;需要node作为环境支撑。 开发时同时有好几个项目&#xff0c;每个项目的需求不同…

Tornado:高性能异步Web框架详解

文章目录 引言官网链接Tornado 原理1. 非阻塞I/O2. 异步编程3. 事件循环4. 轻量级 使用方法安装Tornado创建一个简单的Web服务器 优缺点优点缺点 结论 引言 在Web开发的广阔领域中&#xff0c;处理高并发和实时性需求一直是开发者们面临的挑战。Tornado&#xff0c;作为一个由…

威纶通创建项目创建(输入,输出,画面切换使用)

创建一个项目 1&#xff0c;打开软件 2&#xff0c;创建项目&#xff0c;设置系统参数 增加设备&#xff0c;选择好对应型号&#xff08;有市面上80%设备&#xff09; 3&#xff0c;修改页面&#xff0c;选择参数 4&#xff0c;创建新页面 不能在已经编辑的页面进行新增 5&a…