kubernetes(k8s)集群常用指令

基础控制指令

# 查看对应资源: 状态

$ 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

超过80%大厂都在用,Jetpack Compose现代Android界面开发的未来

超过80%大厂都在用&#xff0c;Jetpack Compose现代Android界面开发的未来 1. 引言 Jetpack Compose是一款用于构建Android界面的现代化工具包。目前该框架已经相对成熟&#xff0c;大厂包括Google、字节、阿里等大厂都在使用。根据反馈&#xff0c;普遍认为开发效率提高了很…

Linux最常用的几个系统管理命令

文章目录 Linux最常用的几个系统管理命令查看网络信息的原初 ifconfig默认无参数使用-s显示短列表配置IP地址修改MTU启动关闭网卡 显示进程状态 ps语法几个实例默认情况显示所有进程查找特定进程信息 任务管理器的 top常规使用显示完整命令设置信息更新次数设置信息更新时间显示…

智谱AI大模型ChatGLM3-6B更新,快來部署体验

ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的新一代对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型&#xff0c;在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上&#xff0c;ChatGLM3-6B 引入了如下特性&#xff1a; 1.更强大的基础模型&…

FlinkAPI开发之数据合流

案例用到的测试数据请参考文章&#xff1a; Flink自定义Source模拟数据流 原文链接&#xff1a;https://blog.csdn.net/m0_52606060/article/details/135436048 概述 在实际应用中&#xff0c;我们经常会遇到来源不同的多条流&#xff0c;需要将它们的数据进行联合处理。所以…

JMeter 批量接口测试

一、背景 最近在进行某中台的接口测试准备&#xff0c;发现接口数量非常多&#xff0c;有6、70个&#xff0c;而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值。想了几种方案后&#xff0c;决定尝试使用JMeter的csv读取来实现批量的接口…

【Docker项目实战】使用Docker部署nullboard任务管理工具

【Docker项目实战】使用Docker部署nullboard任务管理工具 一、nullboard介绍1.1 nullboard简介1.2 任务看板工具介绍 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍2.3 注意事项 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四…

export default 和exprot

1.默认导入和默认导出 语法: export default {需要输出的内容} 接收: import 成员变量的名字 from 文件夹的路径 案例&#xff1a; a.mjs文件夹下默认导出 export default{a:10,b:20,show(){console.log(123);} } 在b.mjs文件中用成员变量进行接收 import AA from &q…

【昕宝爸爸定制】如何将集合变成线程安全的?

如何将集合变成线程安全的? ✅典型解析&#x1f7e2;拓展知识仓☑️Java中都有哪些线程安全的集合&#xff1f;&#x1f7e0;线程安全集合类的优缺点是什么&#x1f7e1;如何选择合适的线程安全集合类☑️如何解决线程安全集合类并发冲突问题✔️乐观锁实现方式 (具体步骤)。✅…

城堡世界源码

随着数字技术的飞速发展和人们对于娱乐需求的不断提升&#xff0c;城堡世界源码开发逐渐成为了新的热门话题。城堡世界是一个集潮流、艺术、科技于一体的数字娱乐新领域&#xff0c;通过将虚拟现实、增强现实等技术融入传统玩具设计中&#xff0c;为玩家们带来了全新的互动体验…

建站为什么需要服务器?(Web服务器与计算机对比)

​  在部署网站时&#xff0c;底层基础设施在确保最佳性能、可靠性和可扩展性方面发挥着至关重要的作用。虽然大多数人都熟悉个人计算机 (PC) 作为日常工作和个人任务的设备&#xff0c;但 PC 和 Web 服务器之间存在显著差异。在这篇文章中&#xff0c;我们将讨论这些差异是什…

拼多多API的未来:无限可能性和创新空间

拼多多&#xff0c;作为中国电商市场的巨头之一&#xff0c;自成立以来一直保持着高速的发展态势。其API的开放为开发者提供了无限的可能性和创新空间&#xff0c;使得更多的商业逻辑和功能得以实现。本文将深入探讨拼多多API的未来发展&#xff0c;以及它所具备的无限可能性和…

Python基础学习(一)

Python基础语法学习记录 输出 将结果或内容呈现给用户 print("休对故人思故国&#xff0c;且将新火试新茶&#xff0c;诗酒趁年华") # 输出不换行&#xff0c;并且可以指定以什么字符结尾 print("青山依旧在",end ",") print("几度夕阳红…

2024-01-03 无重叠区间

435. 无重叠区间 思路&#xff1a;和最少数量引爆气球的箭的思路基本都是一致了&#xff01;贪心就是比较左边的值是否大于下一个右边的值 class Solution:def eraseOverlapIntervals(self, points: List[List[int]]) -> int:points.sort(keylambda x: (x[0], x[1]))# 比较…

入驻抖店的费用是多少?最新具体费用详情!

我是电商珠珠 抖店的入驻费用是新手比较关心的问题&#xff0c;网上的说法不一&#xff0c;有说开店要几w的&#xff0c;还有的说不要钱的&#xff0c;什么说法都有。 搞得想要开店的人&#xff0c;心有点慌&#xff0c;害怕超出自己的预算。 接下来我就跟大家详细讲一下&am…

Java中异常处理-详解

异常&#xff08;Exception&#xff09; JVM 默认处理方案 把异常的名称&#xff0c;异常的原因&#xff0c;及异常出错的位置等信息输出在控制台程序停止执行 异常类型 编译时异常必须显示处理&#xff0c;否则程序会发生错误&#xff0c;无法通过编译运行时异常无需显示处理…

数据泄密零容忍:揭秘迅软科技文件加密系统的保密奥秘!

企事业单位内部的数据机密性至关重要&#xff0c;但机密数据往往以电子文档形式存储&#xff0c;并借助多样化的传播手段&#xff0c;导致文件泄密事件频发。无论是员工误操作导致的终端泄密&#xff0c;还是黑客入侵窃取机密数据&#xff0c;都可能导致重要文件被非法获取&…

使用echarts制作柱状图、折线图,并且下方带表格

实现效果: 调试地址: https://echarts.apache.org/examples/zh/editor.html?cline-simple 源码: option { title: { left: center, top: 0, text: 2022-05月 制造产量 达成情况(单位: 吨) (图1)\n\n集团目标产量: 106,675吨 集团实际产量: 2,636吨, text…

Springboot+vue的工作流程管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频&#xff1a; Springbootvue的工作流程管理系统(有报告)&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的工作流程管理系统&#xff0c;采用M&#xff08;model&#xff09;V&am…

SENet实现遥感影像场景分类

今天我们分享SENet实现遥感影像场景分类。 数据集 本次实验我们使用的是NWPU-RESISC45 Dataset。NWPU Dataset 是一个遥感影像数据集&#xff0c;其中 NWPU-RESISC45 Dataset 是由西北工业大学创建的遥感图像场景分类可用基准&#xff0c;该数据集包含像素大小为 256*256 共计 …

1. seaborn-可视化统计关系

统计分析是了解数据集中的变量如何相互关联以及这些关系如何依赖于其他变量的过程。可视化是此过程的核心组件&#xff0c;这是因为当数据被恰当地可视化时&#xff0c;人的视觉系统可以看到指示关系的趋势和模式。 这里介绍三个seaborn函数。我们最常用的是relplot()。这是一…