k8s-----kubectl 命令,kube-shell自动补全命令,pod伸缩scale
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
-
- create创建(一般不用)
-
delete 删除
-
edit编辑
-
get 获取资源信息
-
describe 查看详细信息
-
logs 日志
-
exec 进入pod
-
explain 命令说明
-
run启动实例
-
2.配置命令
-
- Label 标签管理
-
apply 动态配置(重点)
-
3. 集群管理命令
-
- cluster-info/top 集群状态
-
cordon 禁止调度
-
uncordon
-
drain 驱逐pod
-
taint 反亲和性
-
api-resources/api-versions/version资源
-
config 客户端kube-config配置
-
scale 手动调整pod
-
autoscale 为pod自动伸缩
-
- rollout回滚
-
expose 端口暴露
-
其他常用命令
开源项目kube-shell可以为kubectl提供自动的命令提示和补全
,使用起来特别方便。
Kube-shell有以下特性:
命令提示
,给出命令的使用说明
自动补全
,列出可选命令并可以通过tab键自动补全,支持模糊搜索
高亮
使用tab键可以列出可选的对象
vim
模式
安装方式
Mac下安装
apt-get update
apt-get install bash-completion
或
yum install bash-completion
===================================================================================
Kubernetes中存在三种安全认证方式:
-
CA证书:API server与其它几个组件之间都是通过这种方式认证的
-
HTTP base:即在API server的启动参数中指定的 --token-auth-file=/etc/kubernetes/token.csv 文件中明文的用户、组、密码和UID配置
-
bearer token:HTTP请求中 header 中传递的Autorization:Bearer token ,这个token通常保存在创建角色
跟 serviceaccount 绑定的时候生成的secret中。
kubectl通过读取 kubeconfig 文件中的配置信息在向API server发送请求的时候同时传递认证信息,同时支持CA证书和bearer token的认证方式,请参考使用kubeconfig文件配置跨集群认证。
=======================================================================================
建议使用oh-my-zsh
,增加对kubectl命令自动补全支持。
修改 ~/.zshrc 文件,增加如下两行:
plugins=(kubectl)
source <(kubectl completion zsh)
保存后重启终端即可生效。
============================================================================
kubernetes 中所有支持的类型和缩写
的别名
用着条命令可以查看到
kubectl api-resources
获取节点和服务版本信息
kubectl get nodes
获取节点和服务版本信息,并查看附加信息
kubectl get nodes -o wide
获取pod信息,默认是default名称空间
kubectl get pod
获取pod信息,默认是default名称空间,并查看附加信息【如:pod的IP及在哪个节点运行】
kubectl get pod -o wide
获取指定名称空间的pod
kubectl get pod -n kube-system
获取指定名称空间中的指定pod
kubectl get pod -n kube-system podName
获取所有名称空间的pod
kubectl get pod -A
查看pod的详细信息,以yaml格式或json格式显示
kubectl get pods -o yaml
kubectl get pods -o json
查看pod的标签信息
kubectl get pod -A --show-labels
根据Selector(label query)来查询pod
kubectl get pod -A --selector=“k8s-app=kube-dns”
查看运行pod的环境变量
kubectl exec podName env
查看指定pod的日志
kubectl logs -f --tail 500 -n kube-system kube-apiserver-k8s-master
查看所有名称空间的service信息
kubectl get svc -A
查看指定名称空间的service信息
kubectl get svc -n kube-system
查看componentstatuses信息
kubectl get cs
查看所有configmaps信息
kubectl get cm -A
查看所有serviceaccounts信息
kubectl get sa -A
查看所有daemonsets信息
kubectl get ds -A
查看所有deployments信息
kubectl get deploy -A
查看所有replicasets信息
kubectl get rs -A
查看所有statefulsets信息
kubectl get sts -A
查看所有jobs信息
kubectl get jobs -A
查看所有ingresses信息
kubectl get ing -A
查看有哪些名称空间
kubectl get ns
查看pod的描述信息
kubectl describe pod podName
kubectl describe pod -n kube-system kube-apiserver-k8s-master
查看指定名称空间中指定deploy的描述信息
kubectl describe deploy -n kube-system coredns
查看node或pod的资源使用情况
需要heapster 或metrics-server支持
kubectl top node
kubectl top pod
查看集群信息
kubectl cluster-info 或 kubectl cluster-info dump
查看各组件信息【172.16.1.110为master机器】
kubectl -s https://172.16.1.110:6443 get componentstatuses
create创建(一般不用)
kubectl create namespace namespace-name
kubectl get namespace
delete 删除
kubectl delete pod |service | namespace 名称
kubectl delete pod -n namespace --all 删除该namespace所有的pod
批量删除
kubectl get pod -A |grep 0/1 |awk ‘{print “kubectl delete pod -n”$1,$2" --grace-period=0 --force"}’
强制删除
kubectl delete po -n --force --grace-period=0
edit编辑
一般用于查看
动态编辑资源配置,会直接生效
kubectl get service
kubectl edit service 名称
看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息
kubectl get svc
kubectl get svc -n kube-system
kubectl edit pod -n 资源Namespace pod名称
删除pod
kubectl get pod -A |grep c87e2267-1001-4c70-bb2a-ab41f3b81aa3 |grep -v NAME |awk ‘{print "kubectl delete pod -n "$1,$2}’
get 获取资源信息
kubectl get node | service |namespace |pod
kubectl get pod -o
-o json 格式
-o yaml 格式
-o wide 显示的更详细
-A 查看所有信息
kubectl get pod -o wide
kubectl get pod -A 查看一个namespace中所有pod信息
列出所有 namespace 中的所有 pod
kubectl get pods --all-namespaces
describe 查看详细信息
如果出错可以用describe
kubectl get pod -o wide
kubectl describe pod 名称 -n default
如果还查不到
到宿主机查看系统日志
在那个宿主机
kubectl get pod -o wide
查看日志
vim /var/log/syslog
logs 日志
kubectl get pod
kubectl logs
kubectl logs 名称 bash -n default
exec 进入pod
可以进入到所有k8s的pod
kubectl get pod
kubectl exec -it 名称
进入nginx容器,执行一些命令操作
kubectl exec -it nginx-deployment-58d6d6ccb8-lc5fp bash
explain 命令说明
kubectl explain pod
kubectl explain pod.apiVersion
kubectl explain pod.kind
#控制器
kubectl explain deployment.spec.templete
run启动实例
启动一个 nginx 实例
kubectl run nginx --image=nginx
Label 标签管理
给node标记label,实现pod与node亲和性
pod只创建在指定的node上
kubectl lable --help
对node打
kubectl get node
kubectl describe node 名称
kubectl lable node 名称 group-qcq
apply 动态配置(重点)
- create,后期不支持对资源进行修改
后期如果修改了yaml文件相声小,那么只能删除之前的资源重新create
kubectl delete -f file.yaml
改yaml
kubectl create -f file.yaml
- apply,支持对资源进行修改,
支持回滚:历史版本记录
kubectl apply -f file.yaml
cluster-info/top 集群状态
kubectl top node
kubectl cluster-info
cordon 禁止调度
警戒线,标记node不被调度
也就是让master,或者业务机不跑容器
master时负责pod调度的
kubectl cordon --help
kubectl cordon 节点
然后用,查看
kubectl get node
STATUS会出现SchedulingDisabled不参与调度2
uncordon
取消警戒标记为cordon的node
kubectl uncordon 节点
drain 驱逐pod
驱逐node上的pod
,用户node下线等场景
node挂掉
kubectl get node
kubectl drain 节点
#强制性驱逐
kubectl drain 节点 --ignore-daemonsets --force
最后就没有pod
kubectl get node
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
`,用户node下线等场景
node挂掉
kubectl get node
kubectl drain 节点
#强制性驱逐
kubectl drain 节点 --ignore-daemonsets --force
最后就没有pod
kubectl get node
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-tbTOEYDr-1715791057171)]
[外链图片转存中…(img-X2fTEeaX-1715791057172)]
[外链图片转存中…(img-McOfIK2O-1715791057172)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
更多推荐
所有评论(0)