Kubectl管理工具常用命令

博客围绕容器项目展开,介绍了创建、查看、发布等基本操作,还涉及故障排查、更新、回滚、扩容副本等管理内容,最后说明了删除项目的方法,如通过kubectl命令删除nginx容器和服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

删除容器与镜像:
首先:
kubectl get all 查到之前创建的nginx容器和服务名字,然后删掉
kubectl delete deployment.apps/nginx
kubectl delete service/nginx

1、创建

kubectl run nginx --replicas=3 --labels="app=nginx-example" --image=nginx:1.10 --port=80

2、查看

#查看副本
[root@master ~]# kubectl get deploy
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx     3         3         3            3           18h
#查看容器与标签
[root@master ~]# kubectl get pods --show-labels
NAME                     READY     STATUS    RESTARTS   AGE       LABELS
nginx-5b8c7bbc4c-6zt6w   1/1       Running   0          18h       app=nginx-example,pod-template-hash=1647366707
nginx-5b8c7bbc4c-jmzf9   1/1       Running   0          18h       app=nginx-example,pod-template-hash=1647366707
nginx-5b8c7bbc4c-r7ljf   1/1       Running   0          18h       app=nginx-example,pod-template-hash=1647366707
#根据标签名字查看服务
[root@master ~]# kubectl get pods -l  app=nginx-example
NAME                     READY     STATUS    RESTARTS   AGE
nginx-5b8c7bbc4c-6zt6w   1/1       Running   0          18h
nginx-5b8c7bbc4c-jmzf9   1/1       Running   0          18h
nginx-5b8c7bbc4c-r7ljf   1/1       Running   0          18h
#查看资源的详细信息
[root@master ~]# kubectl get pods -o wide
NAME                     READY     STATUS    RESTARTS   AGE       IP            NODE
nginx-5b8c7bbc4c-6zt6w   1/1       Running   0          18h       172.17.13.2   192.168.1.42
nginx-5b8c7bbc4c-jmzf9   1/1       Running   0          18h       172.17.94.5   192.168.1.40
nginx-5b8c7bbc4c-r7ljf   1/1       Running   0          18h       172.17.94.3   192.168.1.40

--

3、发布

根据kubectl get deploy 找到name 名字
#然后更加name运行,
kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service
#查看创建的服务:
[root@master ~]# kubectl get svc
NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.10.10.1     <none>        443/TCP        7d
nginx-service   NodePort    10.10.10.107   <none>        88:42784/TCP   24s
现在就可以在节点上面测试了:
curl 10.10.10.107:88   或者页面访问:http://192.168.1.40:42784
具体信息查看:
kubectl describe service nginx-service

4、故障排查

#查服务状态
kubectl describe TYPE NAME_PREFIX
例如:
replicaset.apps/nginx-5b8c7bbc4c
#查服务日志
kubectl logs nginx-xxx
例如:
kubectl logs pod/nginx-5b8c7bbc4c-6zt6w
#进入容器内部查看
kubectl exec –it nginx-xxx bash
例如:
kubectl exec -it nginx-5b8c7bbc4c-jmzf9 bash

5、更新项目

#将nginx版本升级为1.11,--record代表记录
 kubectl set image deployment/nginx nginx=nginx:1.11 --record
升级完成检查:
kubectl describe pod nginx-69fcd8b884-blnkg
或者直接编辑文件进行更新:
kubectl edit deployment/nginx
直接更改镜像版本即可:
升级完成检查:
kubectl describe pod nginx-86b8d5d87c-4fwvr

检查更新状态
[root@master ~]# kubectl rollout status deployment/nginx
deployment "nginx" successfully rolled out

检查更新版本:
[root@master ~]# kubectl rollout history deployment/nginx
deployments "nginx"
REVISION  CHANGE-CAUSE
2         <none>
3         <none>
4         kubectl set image deployment/nginx nginx=nginx:1.13 --record=true
检查 版本3 的信息:
[root@master ~]# kubectl rollout history deployment/nginx --revision=3

6、回滚项目

#默认回滚到上个版本
kubectl rollout undo deployment/nginx
#回滚到指定版本
kubectl rollout undo deployment/nginx --to-revision=2
#查看回滚版本
kubectl describe pod nginx-86b8d5d87c-7c24f

7、扩容项目副本

#将副本数扩容到5个
kubectl scale deploy/nginx --replicas=5
#将副本缩到4个
kubectl scale deploy/nginx --replicas=4
或者:
kubectl scale deployment nginx --replicas=4

8、删除项目

kubectl delete deploy/nginx
kubectl delete service/nginx-service
`kubectl` 是 Kubernetes 的核心命令行工具,主要用于管理集群资源。以下是常用的一些 `kubectl` 命令及其功能介绍: --- ### **1. 查看和列举资源** - **列出所有 Pod** ```bash kubectl get pods ``` 添加 `-n namespace` 参数可以指定命名空间;加上 `--all-namespaces` 可以查看所有命名空间下的 Pod。 - **查看详细信息 (描述)** ```bash kubectl describe pod <pod-name> ``` 替换 `<pod-name>` 为你想查看详情的具体 Pod 名称。 - **实时监控日志输出** 如果需要查看某个 Pod 日志并保持跟踪最新变化: ```bash kubectl logs -f <pod-name> ``` --- ### **2. 创建、删除及更新资源** - **创建资源** 使用 YAML 文件创建新的资源配置: ```bash kubectl apply -f config.yaml ``` - **删除资源** 根据名称或文件删除已存在的资源: ```bash kubectl delete -f config.yaml # 或者按名字删除特定 Pod kubectl delete pod <pod-name> ``` - **编辑在线配置** 直接通过交互式界面对现有资源进行修改: ```bash kubectl edit deployment <deployment-name> ``` --- ### **3. 执行容器内的命令或进入 Shell** - **在容器内运行单条命令** 比如执行 Linux 基本指令 ls: ```bash kubectl exec <pod-name> -- ls / ``` - **登录到正在运行的容器中** 类似于 Docker 的 attach 功能: ```bash kubectl exec -it <pod-name> -- /bin/bash ``` --- ### **4. 管理服务和服务发现** - **查找 Service 并获取其详情** 显示某 Service 的端口映射规则等数据: ```bash kubectl get services kubectl describe service <service-name> ``` - **暴露本地应用给公网(临时测试用途)** 将本地的应用程序转发至远程服务器的一个端口中做调试分析: ```bash kubectl port-forward svc/<service-name> 8080:80 ``` --- ### **5. 其他高级操作** - **设置标签或注解** 向某些目标对象添加自定义元数据标记便于分类筛选识别: ```bash kubectl label pods <pod-name> env=production ``` - **滚动升级 Deployment** 更新镜像版本触发部署实例逐步重启过程完成零停机维护任务: ```bash kubectl set image deployments/<deploy-name> containerName=<new-image>:<tag> ``` - **回滚到前一版本** 当出现问题时迅速恢复至上一次稳定状态避免更大损失: ```bash kubectl rollout undo deployment/<deploy-name> ``` --- 以上只是部分最基础也是最重要的几个方面概括总结而已!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值