K8s之资源常用操作命令

K8s对资源的操作

只要是操作对象都可以增删改查(create、get、describe、delete…)

- 名称空间:namespace   名称空间先理解成分组
- 容器组:Pod
- 网络:service
- 配置文件:config
- 控制器:controller
- 节点:node
...

-n:指定名称空间
-o:指定输出格式{yaml|json|wide}
-f:指定资源清单名字
-c:指定容器名

## 查看node节点
[root@k8s01 ~]# kubectl get nodes
NAME    STATUS   ROLES    AGE   VERSION
k8s01   Ready    master   13h   v1.19.3
k8s02   Ready    node     12h   v1.19.3
k8s03   Ready    node     12h   v1.19.3

## 查看有哪些名称空间
[root@k8s01 ~]# kubectl get namespaces 
[root@k8s01 ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   13h
kube-flannel      Active   12h
kube-node-lease   Active   13h
kube-public       Active   13h
kube-system       Active   13h

## 查看pod 
[root@k8s01 ~]# kubectl get pods -n 名称空间 (不指定就是看default里的)


增、删

## 创建名称空间
[root@k8s01 ~]# kubectl create namespace kube-andrew
namespace/kube-andrew created
[root@k8s01 ~]# kubectl get namespaces 
NAME              STATUS   AGE
default           Active   13h
kube-andrew       Active   6s  
...

## 创建pod(不指定默认创建到default名称空间)
[root@k8s01 ~]# kubectl create deployment nginx --image=nginx:alpine
deployment.apps/nginx created
[root@k8s01 ~]# kubectl create deployment nginx --image=nginx:alpine -n kube-andrew  
deployment 控制器
--image=nginx:alpine 指定镜像
-n 在指定的名称空间中创建pod
[root@k8s01 ~]# kubectl get pod   //查看pod详细信息
NAME                     READY   STATUS    RESTARTS   AGE
nginx-565785f75c-c4fcl   1/1     Running   0          10s
[root@k8s01 ~]# kubectl get pod -o wide   //指定输出格式查看pod详细信息
NAME                     READY   STATUS    RESTARTS   AGE   IP         NODE    NOMINATED NODE   READINESS GATES
nginx-565785f75c-c4fcl   1/1     Running   0          18s   10.2.1.5   k8s03   <none>           <none>

## 删除pod
[root@k8s01 ~]# kubectl delete pod nginx-565785f75c-c4fcl 
pod "nginx-565785f75c-c4fcl" deleted
[root@k8s01 ~]# kubectl get pod   //由于是deployment控制器,删除一个pod后立马会新启一个
NAME                     READY   STATUS    RESTARTS   AGE
nginx-565785f75c-flskw   1/1     Running   0          20s

## 删除控制器即可
[root@k8s01 ~]# kubectl get deployment
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   1/1     1            1           3m51s
[root@k8s01 ~]# kubectl delete deployment nginx
deployment.apps "nginx" deleted
[root@k8s01 ~]# kubectl get deployment
No resources found in default namespace.
[root@k8s01 ~]# kubectl get pod
NAME                     READY   STATUS        RESTARTS   AGE
nginx-565785f75c-flskw   0/1     Terminating   0          3m
[root@k8s01 ~]# kubectl get pod   //稍等片刻就删掉了
No resources found in default namespace.

查看pod详细信息

## 查看pod创建详细信息:可以看到它用的啥镜像
[root@k8s01 ~]# kubectl describe pod nginx-565785f75c-m4c9n -n kube-andrew

## 查看pod日志(常用于排错)
[root@k8s01 ~]# kubectl logs -n kube-andrew nginx-565785f75c-m4c9n

在这里插入图片描述

<< Kubernetes(简称k8s)本身并不是Java技术栈的一部分,但作为一位Java开发人员,在实际工作中可能会与基于云原生的应用程序打交道。了解一些常见的Kubernetes命令有助于管理部署在容器中的Java应用程序。 以下是一些常用Kubernetes 基础命令及其功能: ### kubectl基础命令 1. **获取集群信息** ```java // 获取所有命名空间下的Pod列表 kubectl get pods --all-namespaces // 查看节点状态 kubectl get nodes ``` 2. **描述资源详细信息** ```java // 描述特定 Pod 的详细信息 kubectl describe pod <pod-name> // 描述服务的配置详情 kubectl describe svc <service-name> ``` 3. **创建、删除或编辑资源** - 使用 YAML 文件定义资源配置: ```bash // 根据yaml文件创建资源 kubectl apply -f config.yaml // 删除根据指定YAML文件所创建的资源 kubectl delete -f config.yaml // 直接在线修改某现有资源 kubectl edit deployment/<deployment_name> ``` 4. **进入正在运行的容器内部检查日志等** ```java // 进入某个具体的Pod里的第一个容器执行交互式shell(如果支持的话) kubectl exec -it <your-pod-name> bash/sh // 导出该Pod的标准输出/错误流的日志记录到控制台 kubectl logs <your-pod-name> ``` 5. **滚动更新与回滚版本号** 当你希望对现有的Deployment进行渐进式的升级时可以用此操作: ```java // 执行一次新的镜像替换策略并观察整个过程的变化趋势图示化表达形式. kubectl rollout status deploy/<deployments> // 如果出现问题,可以很方便地将应用恢复至之前的稳定statepoint: kubectl rollout undo deploy/<deployments> ``` 这些只是部分的基础命令展示,并且每条指令都有丰富的参数选项可满足更复杂的场景需求。 由于篇幅限制无法一一列举出来所有的可能性,具体可以根据官方文档深入学习探索更多高级玩法!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值