Kubernetes(K8s) kubectl 常用命令

news2024/10/6 2:57:10

文章目录

      • 一、常用命令
        • 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 --force

helm 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 use

root@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                              19h

root@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" uninstalled

root@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.coloradmin.cn/o/1903988.html

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

相关文章

MySQL第三天作业

一、在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); 1、向student表中添加一条新记录 记录中id字段的值为1&#xff0c;name字段的值为"monkey"…

STM32第十六课:WiFi模块的配置及应用

文章目录 需求一、WiFi模块概要二、配置流程1.配置通信串口&#xff0c;引脚和中断2.AT指令3.发送逻辑编写 三、需求实现代码总结 需求 完成WiFi模块的配置,使其最终能和服务器相互发送消息。 一、WiFi模块概要 本次使用的WiFi模块为ESP-12F模块&#xff08;安信可&#xf…

字符串——string类的常用接口

一、string类对象的常见构造 二、string类对象的容量操作 三、string类对象的访问及遍历操作 四、string类对象的修改操作 一、string类对象的常见构造 1.string() ——构造空的string类对象&#xff0c;也就是空字符串 2.string(const char* s) ——用字符串来初始化stri…

Win10如何设置远程桌面?

远程桌面介绍 远程桌面是一款Windows提供的远程工具&#xff0c;旨在连接同一局域网内的两台计算机。如果您掌握被控端电脑的IP地址&#xff0c;便可直接连接到这台已启用远程桌面的计算机&#xff0c;通过远程桌面进行文件传输或提供远程技术支持。 在同一家公司内&#xff0…

JVM专题之垃圾收集器

JVM参数 3.1.1 标准参数 -version -help -server -cp 3.1.2 -X参数 非标准参数,也就是在JDK各个版本中可能会变动 ``` -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式,JVM自己来决定 3.1.3 -XX参数 > 使用得最多的参数类型 > > 非…

十一、作业

1.从大到小输出 写代码将三个整数数按从大到小输出。 void Swap(int* px, int* py) {int tmp *px;*px *py;*py tmp;} int main() {int a 0;int b 0;int c 0;scanf("%d %d %d", &a, &b, &c);int n 0;if (a<b){Swap(&a, &b);}if (a &l…

vscode配置latex环境制作beamer ppt

vscode配置latex环境制作beamer ppt 文章目录 vscode配置latex环境制作beamer ppt1. 安装Tex Live2. 安装vscode插件3. 测试Reference 写在前面&#xff0c;笔者之前一直使用overleaf来制作beamerppt&#xff0c;但是免费版本会限制编译时间上限&#xff0c;故在本地配置了late…

高级计算机体系结构--期末真题及题型总结

2024 年春季学期期末考题回顾一、名词解释二、简答题2007 年简答题2008 年简答题简答题答案 三、分析题1. MESI 和 Dragon 协议计算给定内存存取序列所需的时钟周期2007年第一题及参考答案例题及解答 2. 顺序一致性存储模型&#xff0c;判断进程的合法输出2007年第二题及参考答…

苍穹外卖 ...待更新

苍穹外卖 1、 阿里云OSS2、菜品分类查询 1、 阿里云OSS 工具类 package com.sky.utils;import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import lombok.AllArgsConstructor…

【每日一练】python三目运算符的用法

""" 三目运算符与基础运算的对比 """ a 1 b 2#1.基础if运算判断写法&#xff1a; if a > b:print("基础判断输出&#xff1a;a大于b") else:print("基础判断输出&#xff1a; a不大于b")#2.三目运算法判断&#xff1a;…

【云原生】Prometheus监控Docker指标并接入Grafana

目录 一、前言 二、docker监控概述 2.1 docker常用监控指标 2.2 docker常用监控工具 三、CAdvisor概述 3.1 CAdvisor是什么 3.2 CAdvisor功能特点 3.3 CAdvisor使用场景 四、CAdvisor对接Prometheus与Grafana 4.1 环境准备 4.2 docker部署CAdvisor 4.2.2 docker部署…

flask使用定时任务flask_apscheduler(APScheduler)

Flask-APScheduler描述: Flask-APScheduler 是一个 Flask 扩展&#xff0c;增加了对 APScheduler 的支持。 APScheduler 有三个内置的调度系统可供您使用&#xff1a; Cron 式调度&#xff08;可选开始/结束时间&#xff09; 基于间隔的执行&#xff08;以偶数间隔运行作业…

洛谷 P3613 学习用map代替大大大数组的好题

题目链接&#xff1a;P3613 【深基15.例2】寄包柜 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目截图&#xff1a; 题意分析&#xff1a; 非常简单的存入和取出操作 唯一的 “难点” 在于 数组开不到 a[100007][100007]&#xff0c;会暴内存 非常巧妙的引入 map 来解决…

Square Root SAM论文原理

文章目录 Square Root SAM论文原理核心原理SLAM问题的3种表示贝叶斯网络因子图&#xff08;Factor graph&#xff09;马尔科夫随机场(Markov Random Field, MRF) SLAM最小二乘问题&线性化因式分解 factorization矩阵与图(Matrices ⇔ Graphs)因式分解&变量消元(Factori…

深入理解 Kata Containers

目录 引言Kata Containers 的定义Kata Containers 的架构Kata Containers 的工作原理Kata Containers 的应用场景Kata Containers 在 CentOS 上的常见命令实验场景模拟总结 1. 引言 随着云计算和容器技术的迅猛发展&#xff0c;安全性和性能成为了用户关注的焦点。传统容器技…

STM32CubeMX实现4X5矩阵按键(HAL库实现)

为了实现计算器键盘&#xff0c;需要使用4X5矩阵按键&#xff0c;因此&#xff0c;我在4X4矩阵键盘上重新设计了一个4X5矩阵按键。原理图如下&#xff1a; 原理描述&#xff1a; 4X5矩阵按键&#xff0c;可以设置4个引脚为输出&#xff0c;5个引脚为输入模式&#xff0c;4个引…

如何屏蔽搜索结果特定网站?无限添加指定域名屏蔽解决方案

如何通过Chrome插件屏蔽某网站的搜索结果 在使用搜索引擎时&#xff0c;有时我们会希望屏蔽掉某些不想看到的网站。那么&#xff0c;我们可以通过安装油猴&#xff08;Tampermonkey&#xff09;插件&#xff0c;并使用特定脚本来实现这个目的。由于Chrome网上应用店可能无法打…

数据结构之“队列”(全方位认识)

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;数据结构 前言 上期博客介绍了” 栈 “这个数据结构&#xff0c;他具有先进后出的特点。本期介绍“ 队列 ”这个数据结构&#xff0c;他具有先进先出的特点。 目录…

ASCII码对照表【2024年汇总】

&#x1f37a;ASCII相关文章汇总如下&#x1f37a;&#xff1a; &#x1f388;ASCII码对照表&#xff08;255个ascii字符汇总&#xff09;&#x1f388;&#x1f388;ASCII码对照表&#xff08;Unicode 字符集列表&#xff09;&#x1f388;&#x1f388;ASCII码对照表&#x…

Linux内核链表使用方法

简介&#xff1a; 链表是linux内核中最简单&#xff0c;同时也是应用最广泛的数据结构。内核中定义的是双向链表。 linux的链表不是将用户数据保存在链表节点中&#xff0c;而是将链表节点保存在用户数据中。linux的链表节点只有2个指针(pre和next)&#xff0c;这样的话&#x…