Kubernetes集群操作

查看集群信息:

kubectl get nodes

删除节点

(⽆效且显示的也可以删除)

后期如果 要删除某个节点,为了不增加其他节点的访问压力,先增加一个节点,再删除要删除的节点

语法 :kubect delete node 节点名

如果删除后,该节点需要再次加入集群,在master重置token,打印加入的命令

kubeadm token create --print-join-command

拿着打印的命令,再要加入的node节点执行

kubeadm reset

kubeadm join 192.168.88.110:6443 --token lbstm5.q1ebkuj09swyok2z --discovery-token-ca-cert-hash sha256:96c19c5b7d281678b7c80be1b6145a05bb337012658c8e6bc6419928acbc84ab

单独查看某⼀个节点

(节点名称可以用空格隔开写多个)

kubectl get node k8s-node1

使用 kubectl describe 命令,查看⼀个 API 对象的详细信息:

注意:Events(事件) 值得你特别关注

在 Kubernetes 执⾏的过程中,对 API 对象的所有重要操作,都会被记录在这个对象的 Events ⾥,并且显示在 kubectl describe 指令返回的结果中。

这个部分正是我们将来进⾏ Debug 的重要依据。如果有异常发⽣,⼀定要第⼀时间查看这些 Events,往往可以看到⾮常详细的错误信息。

查看node的详细信息

kubectl describe node k8s-node1

#注意:最后被查看的节点名称只能用get nodes⾥⾯查到的name!

cpu

Requests: 200m (10%) --- 表示容器请求的 CPU 资源为 200 毫核(milli-cores),即 0.2 个核心,占据了总 CPU 资源的 10%。

Limits: 100m (5%) --- 表示容器的 CPU 限制为 100 毫核,即 0.1 个核心,占据了总 CPU 资源的 5%。

memory

Requests: 100Mi (2%) --- 表示容器请求的内存资源为 100 MiB,占据了总内存资源的 2%。

Limits: 50Mi (1%) --- 表示容器的内存限制为 50 MiB,占据了总内存资源的 1%。

ephemeral-storage

Requests: 0 (0%) --- 表示容器请求的临时存储资源为 0。

Limits: 0 (0%) --- 表示容器的临时存储限制为 0。

hugepages-1Gi

解释

Requests 是容器启动时 Kubernetes 调度器用来决定节点上可用资源的基础。它代表了容器正常运行所需的最低资源量。

Limits 是容器可以使用的最大资源量。超出这个限制,容器可能会被限制或终止。

查看各组件信息:

NAME: kubernetes --- 这是服务的名称。

TYPE: ClusterIP --- 这是服务的类型。ClusterIP 类型的服务只能在集群内部访问,无法从外部直接访问。

CLUSTER-IP: 10.96.0.1 --- 这是服务在集群内部的虚拟 IP 地址。它用于将流量路由到服务后端的 Pods。

EXTERNAL-IP: <none> --- 这个字段显示为 <none>,意味着该服务没有配置外部 IP,也就是说,外部网络不能直接访问这个服务。ClusterIP 类型的服务默认没有外部 IP。

PORT(S): 443/TCP --- 这是服务监听的端口和协议。这里是 TCP 协议的 443 端口。

AGE: 19h --- 这是服务创建的时间,从创建到现在已经过去了 19 小时。

在不同的namespace⾥⾯查看service:

在不同的namespace⾥⾯查看service:

[root@kub-k8s-master ~]# kubectl get service -n kube-system

-n:namespace名称空间

查看所有名称空间内的资源:

[root@kub-k8s-master ~]# kubectl get pods --all-namespaces

同时查看多种资源信息:

[root@kub-k8s-master ~]# kubectl get pod,service -n kube-system

查看主节点:

[root@k8s-master prome]# kubectl cluster-info

api查询:

[root@kub-k8s-master ~]# kubectl api-versions

创建名称空间

1.编写yaml文件

[root@kub-k8s-master ~]# mkdir prome

[root@kub-k8s-master ~]# cd prome/

[root@kub-k8s-master prome]# vim namespace.yml

--- # yaml开始的标记

apiVersion: v1 #api版本

kind: Namespace #类型---固定的

metadata: #元数据

name: ns-monitor #给命名空间起个名字

labels: #用于给这个 Namespace 添加标签。标签是键值对,可以用于标识、组织和选择资源

name: ns-monitor # 该namespace的标签

2.创建资源

[root@k8s-master prome]# kubectl apply -f namespace.yml

3.查看资源

[root@k8s-master prome]# kubectl get namespace

注:

namespace 可以缩写为 ns

既:

kubectl get ns

4.查看某⼀个namespace

[root@k8s-master prome]# kubectl get namespace ns-monitor

5.根据标签名查询命名空间

而我们在上面输入的lable中的name的值 monitor_hah_lale,是给这个命名空间打的一个标签,键值对形式出现,可以用于标签查询,查询有特定标签的namespace

[root@k8s-master prome]# kubectl get namespaces --selector=name=monitor_hah_lale

6.查看某个namespace的详细信息

Annotations: <none> # 没有注释

Status: Active #表示处于正常状态
7.修改名称空间的名字

不能直接修改,删除原有的命名空间,创建新的命名空间

kubectl create namespace new-namespace-name

或者 修改yml文件,重新创建


apiVersion: v1

kind: Namespace

metadata:

name: ns-monitor1 # 从ns-monitor 改为 ns-monitor1

labels:

name: monitor_hah_lale

删除老的命名空间

[root@k8s-master prome]# kubectl delete namespace ns-monitor

namespace "ns-monitor" deleted

[root@k8s-master prome]# kubectl get ns

7.删除名称空间

[root@k8s-master prome]## kubectl delete -f namespace.yml

[root@k8s-master prome]## kubectl delete namespace ns-monitor

相关推荐
Nerd Nirvana19 分钟前
软考—系统架构设计(案例 | 论文)
linux·系统架构·软件工程·软考·计算机基础
勤奋的凯尔森同学1 小时前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
丁卯4042 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
chengooooooo2 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
人间打气筒(Ada)4 小时前
MySQL主从架构
服务器·数据库·mysql
Bright16684 小时前
centos9安装k8s集群
云原生·容器·kubernetes
落笔画忧愁e5 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
小冷爱学习!5 小时前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
技术小齐5 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
ITPUB-微风6 小时前
Service Mesh在爱奇艺的落地实践:架构、运维与扩展
运维·架构·service_mesh