常用的k8s管理命令
Kubernetes 是一个由主节点和工作节点组成的容器编排工具。它只允许通过作为控制平面核心组件的 API 服务器进行通信。API 服务器公开了一个 HTTP REST API,允许内部组件(如用户和集群)和外部组件之间的通信。你可以将 API 服务器视为 Kubernetes 的主要用户界面或前端。它使您能够查询、更新或管理 Kubernetes 对象或资源的状态。为了建立这些交互,Kuber
Kubernetes 是一个由主节点和工作节点组成的容器编排工具。它只允许通过作为控制平面核心组件的 API 服务器进行通信。API 服务器公开了一个 HTTP REST API,允许内部组件(如用户和集群)和外部组件之间的通信。
你可以将 API 服务器视为 Kubernetes 的主要用户界面或前端。它使您能够查询、更新或管理 Kubernetes 对象或资源的状态。为了建立这些交互,Kubernetes API 可以直接发出 REST 请求、使用客户端库或通过kubectl 命令行接收直接命令。
kubectl 可以帮助您执行各种操作,包括:
部署容器化应用
运行 Kubernetes 操作
监控任务
检查和管理集群资源
查看系统日志
kubectl 是kubernetes的一个管理工具,需要安装,并且一般安装在主节点上。
kubeclt 的语法:
kubectl [command] [TYPE] [NAME] [flags]
- command:描述要执行的操作类型。常见操作包括创建、写入、获取、应用 和删除。这些命令要么创建新的 Kubernetes 对象,要么修改现有对象,要么请求有关现有对象的信息。你可以在单个命令中指定多个资源。
- TYPE —描述你的命令所针对的资源类型。常见的选项是pod、 service、 deployment、 daemonset、 statefulset、 job 或cronjob。
- NAME —这是区分大小写的,指定你的命令应该应用到的资源的名称。提供资源名称不是强制性的——如果你提供名称,则命令仅限于该特定资源(或者如果没有该名称的资源,你会收到错误消息。如果不指定,则该命令适用于当前命名空间集群中的所有资源。
- flags —这些表示特殊选项或对特定信息的请求。它们也可以用作修饰符来覆盖默认值或环境变量。
1、get 查询资源
使用 kubectl get 操作列出一个或多个资源
- 查看所有k8s节点
kubectl get nodes
- 查看所有pod
1、查看所有的pod
kubectl get pod -A
2、指定名称空间,查看对应名称空间的pod, -n 后面是名称空间
[root@k8s-master01 /]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-7cc8dd57d9-wrcgh 1/1 Running 0 138d
calico-node-9qpvq 1/1 Running 0 138d
calico-node-f8ww5 1/1 Running 0 138d
calico-node-gfrkb 1/1 Running 0 138d
coredns-7449ff9459-csbkf 1/1 Running 0 138d
nacos-7bb9bd6dc-g4665 1/1 Running 0 135d
sfnacos-94975b78d-zfvhn 1/1 Running 0 78d
3、指定名称空间,查看pod详情,加 -o wide
[root@k8s-master01 /]# kubectl get pod -n kube-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
calico-kube-controllers-7cc8dd57d9-wrcgh 1/1 Running 0 138d 10.88.0.2 k8s-master01 <none> <none>
calico-node-9qpvq 1/1 Running 0 138d 172.16.0.48 k8s-node01 <none> <none>
calico-node-f8ww5 1/1 Running 0 138d 172.16.0.150 k8s-master01 <none> <none>
calico-node-gfrkb 1/1 Running 0 138d 172.16.0.147 k8s-node02 <none> <none>
coredns-7449ff9459-csbkf 1/1 Running 0 138d 172.7.32.129 k8s-master01 <none> <none>
nacos-7bb9bd6dc-g4665 1/1 Running 0 135d 172.7.32.135 k8s-master01 <none> <none>
sfnacos-94975b78d-zfvhn 1/1 Running 0 78d 172.7.32.181 k8s-master01 <none> <none>
- 查看指定名称空间的deployment
[root@k8s-master01 /]# kubectl get deployment -n kube-system
NAME READY UP-TO-DATE AVAILABLE AGE
calico-kube-controllers 1/1 1 1 138d
coredns 1/1 1 1 138d
nacos 1/1 1 1 138d
sfnacos 1/1 1 1 78d
- 查看services网络
[root@k8s-master01 /]# kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 139d <none>
2、 Describe 描述
- 查看日志
pod 后面加pod的名称,-n 后面名称空间
[root@k8s-master01 /]# kubectl describe pod calico-kube-controllers -n kube-system
Name: calico-kube-controllers-7cc8dd57d9-wrcgh
Namespace: kube-system
Priority: 2000000000
Priority Class Name: system-cluster-critical
Node: k8s-master01/172.16.0.150
Start Time: Fri, 24 Feb 2023 10:03:31 +0800
Labels: k8s-app=calico-kube-controllers
pod-template-hash=7cc8dd57d9
Annotations: <none>
Status: Running
IP: 10.88.0.2
IPs:
IP: 10.88.0.2
IP: 2001:4860:4860::2
Controlled By: ReplicaSet/calico-kube-controllers-7cc8dd57d9
Containers:
calico-kube-controllers:
Container ID: containerd://d56f786700e356de6b4bf59af4f15c22949bc4caf1b4420ee31feb9d714556b0
Image: docker.io/calico/kube-controllers:v3.19.4
Image ID: docker.io/calico/kube-controllers@sha256:b15521e60d8bb04a501fe0ef4bf791fc8c164a175dd49a2328fb3f2b89838a68
Port: <none>
Host Port: <none>
State: Running
Started: Fri, 24 Feb 2023 10:04:07 +0800
Ready: True
Restart Count: 0
Liveness: exec [/usr/bin/check-status -l] delay=10s timeout=1s period=10s #success=1 #failure=6
Readiness: exec [/usr/bin/check-status -r] delay=0s timeout=1s period=10s #success=1 #failure=3
Environment:
ENABLED_CONTROLLERS: node
DATASTORE_TYPE: kubernetes
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-l9tcm (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-l9tcm:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: kubernetes.io/os=linux
Tolerations: CriticalAddonsOnly op=Exists
node-role.kubernetes.io/master:NoSchedule
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events: <none>
3、apply 创建资源
比如安装calico, 安装文件为calico.yaml, 直接apply 就可创建calico的资源
kubectl apply -f calico.yaml
4、delete删除
- 删除整个安装,比如calico
kubectl delete -f calico.yaml
- 删除deployment
kubectl delete deployment nkafka-deployment-1 -n kafka
nkafka-deployment-1 :deployment 名称
-n kafka : 名称空间
- 删除pod
kubectl delete pod calico-node-dmwpf -n kube-system
calico-node-dmwpf : pod 名称
-n kube-system : 名称空间
- 强制删除pod,状态是Terminating的 pod 无法删除时,使用强制删除
kubectl delete pod kube-system calico-kube-controllers-7cc8dd57d9-4l9kn --force --grace-period=0 -n kube-system
kube-system: 名称空间
calico-kube-controllers-7cc8dd57d9-4l9kn: pod名称
更多推荐
所有评论(0)