k8s-----kubectl 命令,kube-shell自动补全命令,pod伸缩scale

    • 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 端口暴露

  • 其他常用命令

1.kube-shell自动补全


开源项目kube-shell可以为kubectl提供自动的命令提示和补全,使用起来特别方便。

Kube-shell有以下特性

命令提示,给出命令的使用说明

自动补全,列出可选命令并可以通过tab键自动补全,支持模糊搜索

高亮

使用tab键可以列出可选的对象

vim模式

安装方式

Mac下安装

apt-get update

apt-get install bash-completion

yum install bash-completion

2. kubectl的身份认证

===================================================================================

Kubernetes中存在三种安全认证方式

  1. CA证书:API server与其它几个组件之间都是通过这种方式认证的

  2. HTTP base:即在API server的启动参数中指定的 --token-auth-file=/etc/kubernetes/token.csv 文件中明文的用户、组、密码和UID配置

  3. bearer token:HTTP请求中 header 中传递的Autorization:Bearer token ,这个token通常保存在创建角色

跟 serviceaccount 绑定的时候生成的secret中。

kubectl通过读取 kubeconfig 文件中的配置信息在向API server发送请求的时候同时传递认证信息,同时支持CA证书和bearer token的认证方式,请参考使用kubeconfig文件配置跨集群认证。

3. 终端下kubectl命令自动补全

=======================================================================================

建议使用oh-my-zsh,增加对kubectl命令自动补全支持。

修改 ~/.zshrc 文件,增加如下两行:

plugins=(kubectl)

source <(kubectl completion zsh)

保存后重启终端即可生效。

kubectl命令

============================================================================

在这里插入图片描述

kubernetes 中所有支持的类型和缩写的别名

用着条命令可以查看到

kubectl api-resources

在这里插入图片描述

在这里插入图片描述

1. 基础命令


获取节点和服务版本信息

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

2.配置命令


Label 标签管理

给node标记label,实现pod与node亲和性

pod只创建在指定的node上

kubectl lable --help

对node打

kubectl get node

kubectl describe node 名称

kubectl lable node 名称 group-qcq

apply 动态配置(重点)

  1. create,后期不支持对资源进行修改

后期如果修改了yaml文件相声小,那么只能删除之前的资源重新create

kubectl delete -f file.yaml

改yaml

kubectl create -f file.yaml

  1. apply,支持对资源进行修改,支持回滚:历史版本记录

kubectl apply -f file.yaml

3. 集群管理命令


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开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 21
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值