kubernetes(k8s)集群常用指令

news2024/11/23 23:05:29

基础控制指令

# 查看对应资源: 状态

$ kubectl get <SOURCE_NAME> -n <NAMESPACE> -o wide

查看默认命名空间的pod
[root@k8s-master ~]# kubectl  get pod
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          3h53m

查看所有pod
[root@k8s-master ~]# kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
cloud2304     mysql                                      1/1     Running   0               3h40m
default       nginx                                      1/1     Running   0               3h53m
kube-system   calico-kube-controllers-7c87c5f9b8-cbh9g   1/1     Running   5 (5h56m ago)   28h
kube-system   calico-node-7m5tq                          1/1     Running   3 (7h53m ago)   28h
kube-system   calico-node-bth4k                          1/1     Running   3 (7h53m ago)   28h
kube-system   calico-node-zp4tx                          1/1     Running   3 (7h53m ago)   28h

查看指定命名空间的pod
kubectl get pod -n +命名空间名字

删除pod
kubectl delete pod --force +pod名字 -n +命名空间

默认查看到的命名空间是default,修改上下文关系,让查看到的是其他命名空间的pod
#修改默认命名空间为kuboard
[root@k8s-master ~]# kubectl config set-context --current --namespace kuboard
Context "kubernetes-admin@kubernetes" modified.
[root@k8s-master ~]# kubectl get pod
NAME                               READY   STATUS    RESTARTS        AGE
kuboard-agent-2-5cdbd5bb5d-zzr9s   1/1     Running   0               5h44m
kuboard-agent-54dbdc497d-qr2zl     1/1     Running   1 (5h43m ago)   5h44m
kuboard-etcd-f99qg                 1/1     Running   0               7h57m
kuboard-questdb-7cfc9cc858-tnhcz   1/1     Running   0               5h44m
kuboard-v3-5fc46b5557-fwsds        1/1     Running   0               7h57m

#将默认命名空间改回default
[root@k8s-master ~]# kubectl config set-context --current --namespace default
Context "kubernetes-admin@kubernetes" modified.
[root@k8s-master ~]# kubectl get pod 
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          3h42m
动态查看pod
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
cloud2304     mysql                                      1/1     Running   0               3h42m
default       nginx                                      1/1     Running   0               3h54m
kube-system   calico-kube-controllers-7c87c5f9b8-cbh9g   1/1     Running   5 (5h57m ago)   28h
kube-system   calico-node-7m5tq                          1/1     Running   3 (7h54m ago)   28h

查看节点
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES                  AGE   VERSION
k8s-master   Ready    control-plane,master   28h   v1.22.0
k8s-node1    Ready    <none>                 28h   v1.22.0
k8s-node2    Ready    <none>                 28h   v1.22.0

# 查看对应资源: 事件信息

$ kubectl describe <SOURCE_NAME> <SOURCE_NAME_RANDOM_ID> -n <NAMESPACE>

这个就好比容器的信息inspect

查看pod信息,主要用于排错用,重要的是查看文件的Events信息
kubectl describe pod -n  +命名空间名字  +pod名字  

[root@k8s-master ~]# kubectl  describe pod -n kube-system kube-proxy-k7zrz 
Name:                 kube-proxy-k7zrz
Namespace:            kube-system
Priority:             2000001000
Priority Class Name:  system-node-critical
Node:                 k8s-node2/192.168.231.136
Start Time:           Mon, 11 Dec 2023 16:09:59 +0800
Labels:               controller-revision-hash=55847b5bbd
                      k8s-app=kube-proxy
                      pod-template-generation=1
....

# 查看pod资源: 日志

$ kubectl logs -f <SOURCE_NAME_RANDOM_ID> [CONTINER_NAME] -n <NAMESPACE>

看pod日志,只有pod有日志
kubectl logs +pod名字 -n +命名空间名字

[root@k8s-master ~]# kubectl logs kuboard-agent-2-5cdbd5bb5d-zzr9s -n kuboard 
KuboardEndpoint           : http://kuboard-v3
KuboardAgent              : kcp://kuboard-v3:10081
KUBOARD_AGENT_PROXY       : 
KUBOARD_AGENT_KEY         : 32b7d6572c6255211b4eec9009e4a816
KUBOARD_K8S_CLUSTER_NAME  : default
KUBOARD_ANONYMOUS_TOKEN   : pAMXXJ6vfee3CkEyEHVYTxsOtWCplcq6
 
KUBOARD_AGENT_REMOTE_PORT_NGINX: 45001
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   263  100   263    0     0  16437      0 --:--:-- --:--:-- --:--:-- 16437

# 创建资源: 根据资源清单

$ kubectl apply[or create] -f <SOURCE_FILENAME>.yaml

apply 与create都是运行某些文件

create只能运行第一次,再次运行就会报错

apply可以运行多次,后面运行还会帮你更行

# 删除资源: 根据资源清单

$ kubectl delete -f <SOURCE_FILENAME>.yaml

这些文件定义过的内容全部删除
kubectl delete -f xxxx.yaml

# 修改资源: 根据反射出的etcd中的配置内容, 生产中不允许该项操作, 且命令禁止

$ kubectl edit <SOURCE_NAME> <SOURCE_NAME_RANDOM_ID> -n <NAMESPACE>

edit是更新,编辑的意思
[root@k8s-master ~]# kubectl  get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
cloud2304     mysql                                      1/1     Running   0               4h
default       nginx                                      0/1     Running   0                28h

可以进行更新
kubectl edit daemonsets.apps pod名字 -n 命名空间名字

即可自动更新,因为k8s更新是滚动更新

查看node状态

以什么形式查看
#查看node详细信息
[root@k8s-master ~]# kubectl get node -o wide
NAME         STATUS   ROLES                  AGE   VERSION   INTERNAL-IP       EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
k8s-master   Ready    control-plane,master   28h   v1.22.0   192.168.231.134   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   docker://24.0.7
k8s-node1    Ready    <none>                 28h   v1.22.0   192.168.231.135   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   docker://24.0.7
k8s-node2    Ready    <none>                 28h   v1.22.0   192.168.231.136   <none>        CentOS Linux 7 (Core)   3.10.0-1160.el7.x86_64   docker://24.0.7

以yaml形式查看
[root@k8s-master ~]# kubectl  get pod -o yaml
apiVersion: v1
items:
- apiVersion: v1
  kind: Pod
  metadata:
    annotations:
      cni.projectcalico.org/containerID: 27935188fd58c9ec77febe8af14bbb1e507c1cb67da0e202c317c380c43da75c
      cni.projectcalico.org/podIP: 10.244.169.129/32
      cni.projectcalico.org/podIPs: 10.244.169.129/32
      kubectl.kubernetes.io/last-applied-configuration: |
...

以json形式查看
[root@k8s-master ~]# kubectl  get node -o json
{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "v1",
            "kind": "Node",
            "metadata": {
                "annotations": {
                    "kubeadm.alpha.kubernetes.io/cri-socket": "/var/run/dockershim.sock"
...

查看service对象

[root@k8s-master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   28h

查看集群信息

[root@k8s-master ~]# kubectl cluster-info 
Kubernetes control plane is running at https://192.168.231.134:6443
CoreDNS is running at https://192.168.231.134:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

查看各组件信息

[root@k8s-master ~]# kubectl  get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS      MESSAGE                                                                                       ERROR
scheduler            Unhealthy   Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused   
controller-manager   Healthy     ok                                                                                            
etcd-0               Healthy     {"health":"true","reason":""}  

有一个Unhealthy,修改

出现问题是scheduler,因此修改得文件就是scheduler.yaml,哪个出现问题修改哪个
[root@k8s-master ~]# vim /etc/kubernetes/manifests/kube-scheduler.yaml 

-- port 是指定默认端口,将其注释掉

查看另外的组件信息

$ kubectl -s https://api-server:6443 get componentstatuses
-s 指定

查看各资源对象对应的api版本

[root@k8s-master ~]# kubectl explain pod
KIND:     Pod
VERSION:  v1

DESCRIPTION:
     Pod is a collection of containers that can run on a host. This resource is
     created by clients and scheduled onto hosts.
...

 查看帮助信息

$ kubectl explain deployment
$ kubectl explain deployment.spec
$ kubectl explain deployment.spec.replicas

创建pod与命名空间(名称空间)

通常写在xxx.yaml文件内

YAML的语法比较简单,主要有下面几个:
1、大小写敏感
2、使用缩进表示层级关系
3、缩进不允许使用tab,只允许空格( 低版本限制 )
4、缩进的空格数不重要,只要相同层级的元素左对齐即可
5、'#'表示注释

YAML支持以下几种数据类型:
1、纯量:单个的、不可再分的值
2、对象:键值对的集合,又称为映射(mapping)/ 哈希(hash) / 字典(dictionary)
3、数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

补充说明:
1、书写yaml切记: 后面要加一个空格
2、如果需要将多段yaml配置放在一个文件中,中间要使用---分隔

创建名称空间

vim namespace.yaml
###
apiVersion: v1
kind: Namespace
metadata:
    name: webserver
###
#运行文件
$ kubectl apply -f namespace.yaml
# 如果通过命令行创建
$ kubectl create namespace webserver
# 删除名称空间[注意,这将删除名称空间下的所有资源]
$ kubectl delete namespace webserver

创建pod

(1)kind:指定了这个 API 对象的类型(Type),是一个 Pod,根据实际情况,此处资源类型可以是Deployment、Job、Ingress、Service等。

(2)metadata:包含Pod的一些meta信息,比如名称、namespace、标签等信息.

(3)spec:specification of the resource content 指定该资源的内容,包括一些container,storage,volume以及其他Kubernetes需要的参数,以及诸如是否在容器失败时重新启动容器的属性。可在特定Kubernetes API找到完整的Kubernetes Pod的属性。

"name": 容器名称
"image": 容器镜像
"command": 容器启动指令
"args": 指令参数
"workingDir": 工作目录
"ports": 容器端口
"env": 环境变量
"resource": 资源限制
"volumeMounts": 卷挂载
"livenessProbe": 存活探针
"readinessProbe": 就绪探针
"startupProbe": 启动探针
"livecycle": 钩子函数
"terminationMessagePath": 容器的异常终止消息的路径,默认在 /dev/termination-log
"imagePullPolicy": 镜像拉去策略
"securityContext": 安全上下文
"stdin": 给容器分配标准输入,类似docker run -i
"tty": 分配终端

创建一个pod

vim nginx.yaml
###
apiVersion: v1   ##指定版本
kind: Pod    ##指定类型
metadata:    ##包含的信息
  name: nginx  ##pod的名字
  labels:   ##标签,随便写
    app: nginx
#描述    
spec:
  containers:    ##容器
  - name: nginx  ##容器的名字
    image: nginx:1.20  ##容器所使用的镜像
    ports:   ##端口
      - containerPort: 80
###

kubectl apply -f nginx.yaml

创建一个命名空间及pod

vim mysql.yaml
###
apiVersion: v1
kind: Namespace
metadata: 
  name: cloud2304  ###名称空间的名字是cloud2304

---   ###分隔符隔开,下面是创建pod--mysql
apiVersion: v1
kind: Pod
metadata:
  name: mysql
  namespace: cloud2304
spec:  ##描述
  containers:  ##容器
  - name: mysql   ##容器名字
    image: mysql  ##容器所需镜像
    env:  ##环境变量
      - name: MYSQL_ROOT_PASSWORD   ##定义用户登录数据库的密码
        value: "123456"
###

kubectl apply -f mysql.yaml
[root@k8s-master ~]# kubectl get pod -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
cloud2304     mysql                                      1/1     Running   0               4h33m

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

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

相关文章

【C++】STL 算法 ③ ( 函数对象中存储状态 | 函数对象作为参数传递时值传递问题 | for_each 算法的 函数对象 参数是值传递 )

文章目录 一、函数对象中存储状态1、函数对象中存储状态简介2、示例分析 二、函数对象作为参数传递时值传递问题1、for_each 算法的 函数对象 参数是值传递2、代码示例 - for_each 函数的 函数对象 参数在外部不保留状态3、代码示例 - for_each 函数的 函数对象 返回值 一、函数…

【开源项目】WPF 扩展组件 -- Com.Gitusme.Net.Extensiones.Wpf

一、项目简介 Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发&#xff0c;当前最新 1.0.1 版本。包含 核心扩展库&#xff08;Com.Gitusme.Net.Extensiones.Core&#xff09;、视频渲染&#xff08;Com.Gitusme.Media.Video&#xff09;、串口…

苹果Mac图像修图软件Photomator和Pixelmator Pro 有什么区别?

同为一个团队设计的Mac修图软件Photomator和Pixelmator Pro有哪些区别呢&#xff1f;有哪些不一样的功能&#xff1f; Photomator和Pixelmator Pro区别如下&#xff1a; 1、用途不同 Photomator 和 Pixelmator Pro 是两个功能强大的应用程序&#xff0c;具有两个不同的用途。…

从Eumetsat批量下载哨兵数据等各种数据

从Eumetsat批量下载哨兵数据等各种数据 那些最好的程序员不是为了得到更高的薪水或者得到公众的仰慕而编程&#xff0c;他们只是觉得这是一件有趣的事情&#xff01; 批量下载Sentinel数据脚本2023 从Eumetsat批量下载哨兵数据等各种数据&#x1f33f;前言&#x1f340;脚本构成…

原生微信小程序如何动态修改svg图片颜色及尺寸、宽高(封装svgIcon组件)解决ios不显示问题

最终效果 前言 动态设置Svg图片颜色就是修改Svg源码的path中的fill属性&#xff0c; 通过wx.getFileSystemManager().readFile读取.xlsx文件 ios不显示需要把encoding设置 binary 把文件转成base64 封装svg-icon组件 1、在项目的components下新建svg-icon文件夹&#xff0c;新…

no usable temporary directory found in %s“ % dirlist 问题解决

提示其实就是没有可用空间&#xff0c;那我们就找到占用空间大且无用的数据文件删除掉 du -sh * 删除掉/tmp目录下的文件。 重启 问题解决

cpufreq子系统

cpufreq是linux上负责实现动态调频的关键&#xff0c;这篇笔记总结了linux内核cpufreq子系统的关键实现&#xff08;Linux 3.18.140&#xff09;。 概述 借用一张网络上的图片来看cpufreq子系统的整体结构&#xff1a; 用户态接口&#xff1a;cpufreq通过sysfs向用户态暴露接…

2022年多元统计分析期中试卷

多元正态均值检验 一、去年卖出的一岁牛犊的平均身高为 51 英寸&#xff0c;平均背脂厚度是 0.3 英寸&#xff0c;平均肩高是 56 英寸。已知今年卖出的 76 头一岁牛犊的 3 项平均指标为(50, 0.2, 54)‘&#xff0c;样本协差阵及其逆矩阵为 S [ 3.00 − 0.053 2.97 − 0.053 0…

【Bootstrap5学习 day12】

Bootstrap5 导航 Bootstrap5提供了一种简单快捷的方法来创建基本导航&#xff0c;它提供了非常灵活和优雅的选项卡和Pills等组件。Bootstrap5的所有导航组件&#xff0c;包括选项卡和Pillss&#xff0c;都通过基本的.nav类共享相同的基本标记和样式。 创建基本导航 要创建简单…

eureka注册列表 某服务出现多个服务实例

最近文件导出功能偶发成功&#xff0c;大部分情况都失败&#xff0c;开始以为接口被拦截&#xff0c;gateway服务没有接口调用日志&#xff0c;发现测试环境可以&#xff0c;正式环境功能无法正常使用。 偶然看到注册中心如下 发现file服务有3个实例&#xff0c;调用接口将错误…

Java十种经典排序算法详解与应用

数组的排序 前言 排序概念 排序是将一组数据&#xff0c;依据指定的顺序进行排列的过程。 排序是算法中的一部分&#xff0c;也叫排序算法。算法处理数据&#xff0c;而数据的处理最好是要找到他们的规律&#xff0c;这个规律中有很大一部分就是要进行排序&#xff0c;所以需…

Excel中快速隐藏中间四位手机号或者身份证号等

注意&#xff1a;以下方式必须再新增一列&#xff0c;配合旧的一列用来对比操作&#xff0c;即根据旧的一列的数据源&#xff0c;通过新的一列的操作逻辑来生成新的隐藏数据 1、快捷方式是使用CtrlE 新建一列&#xff1a;手动输入第一个手机号隐藏后的号码&#xff0c;即在N2单…

VS+QT五子棋游戏开发

1、首先安装好VS软件和QT库&#xff0c;将其配置好&#xff0c;具体不在此展开说明。 2、文件结构如下图&#xff1a; 3、绘制棋盘代码&#xff0c;如下&#xff1a; void Qwzq::paintEvent(QPaintEvent* event) {QPainter painter(this);painter.setRenderHint(QPainter::An…

Unity之键盘鼠标的监控

小编最近在玩大表哥2&#xff0c;通过 W、A、S、D 来移动亚瑟&#xff0c;鼠标左键来不吃牛肉 我们都知道玩家通过按键鼠标来控制游戏人物做出相应的行为动作&#xff0c;那在Unity引擎里是怎么知道玩家是如何操作的呢&#xff1f;本篇来介绍Unity是怎样监控键盘和鼠标的。 首先…

智创有术开发公司,星潮宇宙开发。

2024年&#xff0c;星潮宇宙全网首发&#xff0c;一个全新的赛道将被开启&#xff0c;这将对游戏产业产生深远的影响。本文将深入探讨这场首发的对接团队以及他们的突破性举措&#xff0c;以展示其对游戏界的重要意义。 星潮宇宙全网首发概述 星潮宇宙的全网首发意味着将有一…

Cloud模型matlab

学习资料python 多维正态云python 预备知识&#xff1a; 如何获取具有特定均值和方差的正态分布随机数。首先&#xff0c;初始化随机数生成器&#xff0c;以使本示例中的结果具备可重复性。 rng(0,twister);基于均值为 500 且标准差为 5 的正态分布创建包含 1000 个随机值的向…

损失函数篇 | YOLOv8 引入 Shape-IoU 考虑边框形状与尺度的度量

作者导读&#xff1a;Shape-IoU&#xff1a;考虑边框形状与尺度的度量 论文地址&#xff1a;https://arxiv.org/abs/2312.17663 作者视频解读&#xff1a;https://www.bilibili.com 开源代码地址&#xff1a;https://github.com/malagoutou/Shape-IoU/blob/main/shapeiou.py…

Linux第16步_安装NFS服务

NFS&#xff08;Network File System&#xff09;是一种在网络上实现的分布式文件系统&#xff0c;它允许不同的操作系统和设备之间共享文件和资源。 在创建的linux目录下&#xff0c;再创建一个“nfs“文件夹&#xff0c;用来供nfs服务器使用&#xff0c;便于”我们的开发板“…

Android Studio 模拟器卡死的解决方法!

目录 前言 一、常规方法 二、简便解决方法 前言 在开发过程中&#xff0c;使用Android Studio模拟器是一种常见的方式来测试和调试应用程序。然而&#xff0c;有时候你可能会遇到模拟器卡死的情况&#xff0c;这给开发工作带来了一定的困扰。模拟器卡死可能会让你无法正常进…

设计模式——迭代器模式(Iterator Pattern)

概述 迭代器模式(Iterator Pattern)&#xff1a;提供一种方法来访问聚合对象&#xff0c;而不用暴露这个对象的内部表示&#xff0c;其别名为游标(Cursor)。迭代器模式是一种对象行为型模式。 在软件开发中&#xff0c;我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有…