Kubernetes(K8S) 常用命令
Docker 常用命令
# 查看API版本
[root@k8smaster ~]# kubectl api-versions
# 重启 K8S
[root@k8smaster ~]# systemctl restart kubelet
# 查看 kubelet 状态
[root@k8smaster ~]# systemctl status kubelet
# 重启 POD kubectl rollout restart deployment <deployment-name> -n <namespace>
[root@k8smaster ~]# kubectl rollout restart deployment javademo1 -n default
# 查看节点资源,需要安装metrics-server 【https://www.cnblogs.com/vipsoft/p/16896510.html】
[root@k8smaster ~]# kubectl top node
# 查看 Pod 在节点上的资源分配情况
[root@k8smaster ~]# kubectl describe node
# 查看 Pod 资源使用情况
[root@k8smaster ~]# kubectl top pod -A
# 查看 POD 在哪个节点上运行
[root@k8smaster ~]# kubectl get pod -A -o wide
# 查看 所有 secret
[root@k8smaster ~]# kubectl get secret -A
# 查看 secret 明细
[root@k8smaster ~]# kubectl describe secret -A
# 创建 secret
[root@k8smaster ~]# kubectl create secret docker-registry registry-vipsoft-shanghai \
--namespace=default \
--docker-server=registry.cn-shanghai.aliyuncs.com \
--docker-username=vipsoft \
--docker-password=123456 \
--docker-email=xxx@xxx.com
# 删除 secret
[root@k8smaster ~]# kubectl delete secret registry-vipsoft-shanghai -n namespace
# 弹性伸缩 创建 3 个副本
[root@k8smaster ~]# kubectl scale deployment javademo1 --replicas=3
# 查看所有命名空间
[root@k8smaster ~]# kubectl get namespace
# 查看 node3的详情
[root@k8smaster ~]# kubectl describe nodes k8snode3
# 给node打标签
[root@k8smaster ~]# kubectl label node k8snode1 env_role=dev
# 查看 node 标签
[root@k8smaster ~]# kubectl get nodes k8snode1 --show-labels
# 查看当前节点的污点
[root@k8smaster ~]# kubectl describe node k8snode3 | grep Taint
# 添加污点 kubectl taint node 节点名称 key=value:污点值-
[root@k8smaster ~]# kubectl taint node k8snode1 key=value:NoSchedule
# 删除污点 kubectl taint node 节点名称 key=value:污点值-
[root@k8smaster ~]# kubectl taint node k8snode1 env_role:NoSchedule-
# 删除 svc
[root@k8smaster ~]# kubectl delete svc nginx
# 删除 svc
[root@k8smaster ~]# kubectl delete statefulset --all
# 创建命名空间
[root@k8smaster ~]# kubectl create ns vipsoft-dev
# 看所有Pod都在哪些节点上运行
[root@k8smaster ~]# kubectl get pod -A -o yaml |grep '^ n'|grep -v nodeSelector|awk 'NR%3==1{print ++n"\n"$0;next}1'
创建 Deployment
# 创建 POD
[root@k8smaster ~]# kubectl create -f xx.yaml
[root@k8smaster ~]# kubectl apply -f xx.yaml
# 如果yaml文件中的kind值为deployment,那么上面这两个命令都可以创建一个deployment,生成相应数量的pod
区别:
kubectl create:
(1)kubectl create命令,是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的
(2)kubectl create命令,用同一个yaml 文件执行替换replace命令,将会不成功,fail掉。
kubectl apply:
kubectl apply 命令,根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性
# 删除 Pod nfs-nginx.yaml
[root@k8smaster ~]# kubectl delete -f nfs-nginx.yaml
# 查看 pod 的日志 并 持续打印
[root@k8smaster ~]# kubectl logs -f --tail=200 pods/podname -n namespace
# 进到容器
[root@k8smaster ~]# kubectl exec -it nginx-pvc-58b7bf955f-5clzg bash
# 查看 K8S 配置
[root@k8smaster ~]# cat $HOME/.kube/config
# 查看 pods 情况
[root@k8smaster ~]# kubectl get pods -n kube-system
# 查看 nodes 情况
[root@k8smaster ~]# kubectl get nodes
# 删除 nodes
[root@k8smaster ~]# kubectl drain centos-7-56 --delete-local-data --force --ignore-daemonsets node/centos-7-56 cordoned
# 查看default 命名空间下的 pod 状态
[root@k8smaster ~]# kubectl get pods
# 查看所有命名空间下的 pod
[root@k8smaster ~]# kubectl get pods -A
# 查看 pod,排除 default 命名空间
[root@k8smaster ~]# kubectl get pod -A |grep -v default
# 查看所有 javademo1 的 pod 的详情
[root@k8smaster ~]# kubectl describe pod javademo1
# 对外暴露 80 端口
[root@k8smaster ~]# kubectl expose deployment nginx --port=80 --type=NodePort
[root@k8smaster ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/javademo1-d7856c75c-czv2g 1/1 Running 0 152m
pod/javademo1-d7856c75c-n28rs 1/1 Running 0 151m
pod/javademo1-d7856c75c-xzqjc 1/1 Running 0 151m
pod/nginx-f89759699-5hkdw 1/1 Running 0 26d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/javademo1 NodePort 10.106.43.46 <none> 8111:31452/TCP 20d
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 26d
service/nginx NodePort 10.103.87.81 <none> 80:30339/TCP 26d
# -o wide 显示资源的额外信息, 可以显示 pod 在哪个节点上运行
[root@k8smaster ~]# kubectl get pods -n ingress-nginx -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-ingress-controller-5cb8688798-gspq4 1/1 Running 0 18h 10.244.2.39 k8snode2 <none> <none>
[root@k8smaster ~]# kubectl describe svc javademo1
Name: javademo1
Namespace: default
Labels: app=javademo1
Annotations: <none>
Selector: app=javademo1
Type: NodePort
IP: 10.106.43.46
Port: <unset> 8111/TCP
TargetPort: 8111/TCP
NodePort: <unset> 31452/TCP
Endpoints: 10.244.1.31:8111,10.244.1.32:8111,10.244.2.38:8111
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
[root@k8smaster ~]#
# 查看创建的 Deployment 对象
[root@k8smaster ~]# kubectl get deployments
# 查看 Deployeement 详情
[root@k8smaster ~]# kubectl describe deployment/javademo1
# 查看 Deployment 上线状态
[root@k8smaster ~]# kubectl rollout status deployment/javademo1
# 查看 Deployment 对象创建的 ReplicaSet:
[root@k8smaster ~]# kubectl get rs
# 查看 Deployment 对象操作 ReplicaSet 创建的 Pod,并显示生成的标签:
[root@k8smaster ~]# kubectl get pods --show-labels
#查看当前运行的 Pod
[root@k8smaster ~]# kubectl get pods
# 查看当前证书到期时间
[root@k8smaster ~]# kubeadm alpha certs check-expiration
# 初次创建,生成 yaml 文件 --dry-run,减少编写量,避免出错
[root@k8smaster ~]# kubectl create deployment javademo1 --image=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0.0 --dry-run -o yaml > javademo1.yaml
# 已部署的,导出 yaml 文件
[root@k8smaster ~]# kubectl get deployment javademo1 -o yaml > javademo2.yaml
升级
# kubectl describe deployment/javademo1
# 查看 Deployeement 详情 里可以看到 Containers 内容
# Containers:
# vipsoft:
# Image: registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:1.0
# 设置vipsoft容器中的镜像,镜像版本变了,就会触发重新拉取动作
[root@k8smaster ~]# kubectl set image deployment/javademo1 vipsoft=registry.cn-shanghai.aliyuncs.com/vipsoft/vipsoft:2.0
deployment.apps/javademo1 image updated
# 查看状态
[root@k8smaster ~]# kubectl rollout status deployment/javademo1
deployment "javademo1" successfully rolled out
# 修改 yaml 文件,直接更新版本号
[root@k8smaster ~]# kubectl edit deployment/javademo1
回滚
# 查看 Deployment 部署历史, CHANGE-CAUSE 里没有值,需要在创建 Deployment 时,使用 --record 参数,就可以在 CHANGE-CAUSE 列看到每个版本使用的命令了
[root@k8smaster ~]# kubectl rollout history deployment/javademo1
# 查看版本 2 的信息:
[root@k8smaster ~]# kubectl rollout history deployment/javademo1 --revision=2
# 这边没加参加,回滚到上一个版本
[root@k8smaster ~]# kubectl rollout undo deployment/javademo1
# 加上参数,回滚到指定版本
[root@k8smaster ~]# kubeetl rollout undo deployment/javademo1 --to-revision=2
# 查看 Deployeement 详情
[root@k8smaster ~]# kubectl describe deployment/javademo1
Kubernetes(K8S) 常用命令的更多相关文章
- [转帖] K8S 常用命令
k8s常用命令 原贴地址 查看集群信息: [root@kubernetes-master pods]# kubectl cluster-info kubectl cluster-info展示结果 k ...
- K8s常用命令操作
K8s常用命令操作 一.kubectl命令补全 1.master安装命令补全,并临时生效 yum install -y bash-completion source /usr/share/bash-c ...
- k8s常用命令
K8s一些命令:通过yaml文件创建:kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete)kubectl apply -f xxx.yaml (创建+更新 ...
- Kubernetes,kubectl常用命令详解
kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ...
- k8s常用命令记录
目录 kubectl常用命令 kubectl get pod -n dev 查看日志 查看pod详情 删除pod 删除job 进入pod里面 查看namespace 创建namespace 删除nam ...
- k8s 常用命令汇集
通过yaml文件创建: kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete) kubectl apply -f xxx.yaml (创建+更新,可以重复使 ...
- k8s 常用命令
[root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 1h v1.8.1 node1 ...
- k8s常用命令演示
kubectl run --image=xxx name_xx --port kubectl run --image=nginx nginx-app --port=80 kubectl expose ...
- kubernetes 学习 常用命令
1 kubectl get nodes #查看nodes节点情况 2 kubectl describe node node_name_XXXX # 查看nodes详 ...
- ARTS-S k8s常用命令
本地访问minikube的docker eval $(minikube docker-env) 删除statefulset kubectl delete statefulset web --casca ...
随机推荐
- Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入
从表格中选择数据 要从MySQL中的表格中选择数据,请使用"SELECT"语句: 示例选择"customers"表格中的所有记录,并显示结果: import m ...
- What is Conjugate complex number(共轭复数)?
word explain Conjugate 共轭是一个古代汉语词,在农业领域常用, 共轭复数的定义 两个实部相等,虚部互为相反数的复数互为共轭复数. 若Z=a+bi(a,b∈R),则Z*=a-bi( ...
- WPF --- 如何重写WPF原生控件样式
引言 上一篇中 WPF --- 重写DataGrid样式,因新产品UI需要,重写了一下微软 WPF 原生的 DataGrid 的样式,包含如下内容: 基础设置,一些基本背景色,字体颜色等. 滚动条样式 ...
- 音色逼真、韵律自然的AI人声克隆限时福利!
声音,为数字人注入灵魂. 2023云栖大会上,阿里云视频云接受了CCTV-2财经频道的采访,分享并演示了如何利用云端智能剪辑,一站式完成数字人渲染及视频精编二创. 正如视频开头所呈现的AI重现演员&q ...
- 深入了解Rabbit加密技术:原理、实现与应用
一.引言 在信息时代,数据安全愈发受到重视,加密技术作为保障信息安全的核心手段,得到了广泛的研究与应用.Rabbit加密技术作为一种新型加密方法,具有较高的安全性和便捷性.本文将对Rabbit加密技术 ...
- 【Android】实现连接SQLite并尝试进行增删改查
- 如何将IPv4升级到IPv6?看完你就明白了
引言: 随着互联网的快速发展,IPv4(Internet Protocol version 4)已经无法满足日益增长的设备和用户数量的需求. IPv6(Internet Protocol versio ...
- SQLBI_精通DAX课程笔记_03_计算列
计算列是由DAX在表中生成的列,逐行计算并储存在模式之中. 以下链接是采悟老师关于度量值和计算列的区别的文章,可以同步查看. https://zhuanlan.zhihu.com/p/75462046 ...
- 解密Prompt系列20. LLM Agent之再谈RAG的召回多样性优化
几个月前我们就聊过RAG的经典方案解密Prompt系列14. LLM Agent之搜索应用设计.前几天刚看完openAI在DevDay闭门会议上介绍的RAG相关的经验,有些新的感悟,借此机会再梳理下R ...
- antd Pro组件ProFormList实现自定义action
antd Pro组件ProFormList实现自定义action ProFormList是ant design pro的结构化数据组件,通常用来实现动态表单. 现在有个需求,除了组件自带的删除和复制, ...