【云原生】K8s管理工具--Kubectl(一)

这篇具有很好参考价值的文章主要介绍了【云原生】K8s管理工具--Kubectl(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、陈述式管理

1、陈述式管理方式

  • kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口
  • kubectl 是官方的 CLI 命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为
  • apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径
  • kubectl 的命令大全
    kubectl --help
  • k8s官方中文文档:http://docs.kubernetes.org.cn/683.html
  • 对资源的增、删、查操作比较容易,但对改的操作就不容易了

2、Kubernetes相关信息查看

(1)查看版本信息
【云原生】K8s管理工具--Kubectl(一)
(2)查看节点信息
【云原生】K8s管理工具--Kubectl(一)
(3)查看资源对象
【云原生】K8s管理工具--Kubectl(一)
(4)查看集群信息
【云原生】K8s管理工具--Kubectl(一)
(5)配置kubectl自动补全

source <(kubectl completion bash)

(6)查看日志
【云原生】K8s管理工具--Kubectl(一)
(7)查看基本信息

kubectl get [-o wide|json|yaml] [-n namespace]

获取资源的相关信息,-n指定命名空间,-o指定输出格式
resource可以是具体资源名称,如"pod nhinx-xxx";也可以是资源类型,如“pod,node,svc,deploy”多种资源使用逗号间隔;或者all(仅展示几种核心资源,并不完整)

–all-namespaces或-A:表示显示所有命名空间
–show-labels:显示所有标签
-l app:仅显示标签为app的资源
-l app=nginx:仅显示包含app标签,且值为nginx的资源

3、查看节点状态

(1)查看master节点状态

[root@master01 ~]#kubectl get componentstatuses
[root@master01 ~]#kubectl get cs

【云原生】K8s管理工具--Kubectl(一)
(2)查看命名空间

[root@master01 ~]#kubectl get namespace
[root@master01 ~]#kubectl get ns

【云原生】K8s管理工具--Kubectl(一)

4、命名空间操作

(1)查看default命名空间的所有资源

kubectl get all [-n default]

【云原生】K8s管理工具--Kubectl(一)
(2)创建命名空间

[root@master01 ~]#kubectl create ns zz

【云原生】K8s管理工具--Kubectl(一)

(3)删除命名空间

[root@master01 ~]#kubectl  delete ns zz

【云原生】K8s管理工具--Kubectl(一)

5、deployment/pod操作

(1)在命名空间kube-public创建副本控制器(deployment)来启动Pod(nginx-test)

[root@master01 ~]#kubectl create deployment nginx-zz --image=nginx -n kube-public

[root@master01 ~]#kubectl get deploy -n kube-public
NAME       READY   UP-TO-DATE   AVAILABLE   AGE
nginx-zz   0/1     1            0           45s
#get是用于获取资源的命令,deploy是资源类型的名称,-n kube-public是指定命名空间为 kube-public。
[root@master01 ~]#kubectl get pod -n kube-public
NAME                        READY   STATUS             RESTARTS   AGE
nginx-zz-68484475d5-nlklk   0/1     ImagePullBackOff   0          2m8s
#get是用于获取资源的命令,pod是资源类型的名称,-n kube-public是指定命名空间为 kube-public。

【云原生】K8s管理工具--Kubectl(一)

(2)描述某个资源的详细信息

[root@master01 ~]#kubectl describe deployment nginx-zz -n kube-public

【云原生】K8s管理工具--Kubectl(一)

[root@master01 ~]#kubectl describe pod nginx-zz -n kube-public

【云原生】K8s管理工具--Kubectl(一)

(3)查看命名空间kube-public中pod信息

[root@master01 ~]#kubectl get pods -n kube-public

【云原生】K8s管理工具--Kubectl(一)
(4)登录容器
kubectl exec 可以跨主机登录容器,docker exec 只能在容器所在主机登录

[root@master01 ~]#kubectl exec -it nginx-zz-68484475d5-nlklk bash -n kube-public

【云原生】K8s管理工具--Kubectl(一)
(5)删除pod资源

由于存在 deployment/rc 之类的副本控制器,删除 pod 也会重新拉起来

[root@master01 ~]#kubectl get pods -n kube-public
NAME                        READY   STATUS    RESTARTS   AGE
nginx-zz-68484475d5-nlklk   1/1     Running   0          33m

[root@master01 ~]#kubectl delete pod nginx-zz-68484475d5-nlklk  -n kube-public
pod "nginx-zz-68484475d5-nlklk" deleted

[root@master01 ~]#kubectl get pods -n kube-public
NAME                        READY   STATUS              RESTARTS   AGE
nginx-zz-68484475d5-c4t98   0/1     ContainerCreating   0          19s

【云原生】K8s管理工具--Kubectl(一)
(6)若无法删除pod,总是处于terminate状态,则要强行删除pod

grace-period表示过渡存活期,默认30s,在删除pod之前允许pod慢慢终止其上的容器进程,从而优雅的退出,0表示立即终止pod

[root@master01 ~]#kubectl delete pod nginx-zz-68484475d5-c4t98  -n kube-public --force --grace-period=0
[root@master01 ~]#kubectl get pod -n kube-public

【云原生】K8s管理工具--Kubectl(一)

6、扩缩容

(1)扩容

[root@master01 ~]#kubectl scale deployment nginx-zz --replicas=3 -n kube-public

【云原生】K8s管理工具--Kubectl(一)
(2)缩容

[root@master01 ~]#kubectl scale deployment nginx-zz --replicas=1 -n kube-public

【云原生】K8s管理工具--Kubectl(一)
(3)删除副本控制器

[root@master01 ~]#kubectl delete deployment nginx-zz -n kube-public

【云原生】K8s管理工具--Kubectl(一)

7、增加删除label

(1)增加label

[root@master01 ~]#kubectl get deploy --show-labels
NAME    READY   UP-TO-DATE   AVAILABLE   AGE   LABELS
nginx   1/1     1            1           20h   app=nginx
[root@master01 ~]#kubectl label deploy nginx version=nginx1.14

【云原生】K8s管理工具--Kubectl(一)
(2)删除label

[root@master01 ~]#kubectl label deploy nginx version-
[root@master01 ~]#kubectl get deploy --show-labels

【云原生】K8s管理工具--Kubectl(一)
【云原生】K8s管理工具--Kubectl(一)

二、声明式管理

1、声明式管理方式

  • 适合于对资源的修改操作
  • 声明式资源管理方法依赖于资源配置清明文件对资源进行管理
  • 资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)
  • 对资源的观念里,是通过实现定义在同一资源配置清单内,再通过陈述式命令应用到k8s集群里
  • 语法格式:kubectl create/apply/delete -f -o yaml

2、查看资源配置清单

[root@master01 ~]#kubectl get deploy/nginx -o yaml

【云原生】K8s管理工具--Kubectl(一)

[root@master01 ~]#kubectl get service nginx -o yaml

【云原生】K8s管理工具--Kubectl(一)

3、解释资源配置清单

[root@master01 ~]#kubectl explain deployment.metadata

【云原生】K8s管理工具--Kubectl(一)

[root@master01 ~]#kubectl explain service.metadata

【云原生】K8s管理工具--Kubectl(一)

4、修改资源配置清单并应用

(1)修改yaml文件,并用kubectl apply -f xxxx.yaml文件使之生效

注意:当apply不生效时,先使用delete清除资源,再apply创建资源

[root@master01 ~]#kubectl get service nginx -o yaml > nginx-svc.yaml
[root@master01 ~]#vim nginx-svc.yaml 

【云原生】K8s管理工具--Kubectl(一)

(2)删除资源

[root@master01 ~]#kubectl delete -f nginx-svc.yaml 

【云原生】K8s管理工具--Kubectl(一)

(3)新建资源

[root@master01 ~]#kubectl apply -f nginx-svc.yaml 

【云原生】K8s管理工具--Kubectl(一)

(4)在线修改

直接使用kubectl edit service nginx-service在线编辑配置资源清单并保存退出即时生效(如port: 888)

此修改方式不会对yaml文件内容修改

[root@master01 ~]#kubectl edit service nginx

【云原生】K8s管理工具--Kubectl(一)
查看资源
【云原生】K8s管理工具--Kubectl(一)

5、删除资源配置清单

(1)陈述式删除

[root@master01 ~]#kubectl delete service nginx

【云原生】K8s管理工具--Kubectl(一)

(2)声明式删除

[root@master01 ~]#kubectl delete -f nginx-svc.yaml 

【云原生】K8s管理工具--Kubectl(一)文章来源地址https://www.toymoban.com/news/detail-447186.html

到了这里,关于【云原生】K8s管理工具--Kubectl(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生管理工具dashboard--Kube Sphere(k8s)和Portainer(Docker)安装

    安装 推荐直接使用All in One 安装模式安装,最为简单,同时安装kube Sphere也支持同时安装好k8s的环境 官方安装网址如下,写的很详细,也贴心的准备了中国地区安装的网络问题应对方式 在 Linux 上以 All-in-One 模式安装 KubeSphere 安装 建议直接以docker形式安装,命令如下 -d : 表示

    2024年01月22日
    浏览(42)
  • k8s管理工具Kubesphere

    Kubesphere是一个开源的容器管理平台,它提供了一系列的工具和服务,帮助开发者更轻松地管理和部署容器化应用。在本文中,我们将介绍Kubesphere的主要功能和使用方法,并分享一些学习Kubesphere的经验和技巧。 Kubesphere的主要功能 Kubesphere提供了一系列的功能,包括: 容器编

    2024年02月13日
    浏览(41)
  • k8s搭建(五、k8s可视化管理工具Dashboard配置)

    天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 k8s搭建文章: k8s搭建(一、k8s环境配置与docker安装) k8s搭建(二、k8s组件安装) k8s搭

    2024年02月03日
    浏览(50)
  • K8s包管理工具helm

    Helm官网 Helm 是 Kubernetes 的包管理器 ,使用chart来帮助您管理Kubernetes的应用,即使是最复杂的应用程序,helm都可以定义,安装和升级。 Chart 代表着 Helm 包。它包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。你可以把它看作是 Homebrew formula,Apt dpkg,

    2024年02月19日
    浏览(52)
  • k8s图形化管理工具rancher

     Rancher和K8s的关系,Rancher和K8s区别对比。简单来说,K8s(Kubernetes)为企业提供了一种一致的方式来管理任何计算基础架构,Rancher则是用于管理位于任何位置的Kubernetes集群的完整平台。如果用户是自己手动部署K8s集群,流程还是比较复杂的,需要掌握一定的技术知识,所以为

    2024年02月20日
    浏览(45)
  • 如何使用装rancher安装k8s集群(k8s集群图形化管理工具)

    kubernetes集群的图形化管理工具主要有以下几种: 1、 Kubernetes Dashborad: Kubernetes 官方提供的图形化工具 2、 Rancher: 目前比较主流的企业级kubernetes可视化管理工具 3、各个云厂商Kubernetes集成的管理器 4、 Kuboard: 国产开源Kubernetes可视化管理工具 本篇我们来学习 主流的企业级kube

    2024年02月11日
    浏览(41)
  • k8s的包管理工具helm

     之前的这篇文章介绍了一开始接触k8s的时候接触到的几个命令工具 kubectlkubeletrancherhelmkubeadm这几个命令行工具是什么关系?-CSDN博客 Helm 是一个用于管理和部署 Kubernetes 应用程序的包管理工具。它允许用户定义、安装和管理 Kubernetes 应用程序的模板,这些模板被称为 Charts。

    2024年01月22日
    浏览(58)
  • k8s图形化管理工具之rancher

    在前面的k8s基础学习中,我们学习了各种资源的搭配运用,以及命令行,声明式文件创建。这些都是为了k8s管理员体会k8s的框架,内容基础。在真正的生产环境中,大部分的公司还是会选用图形化管理工具来管理k8s集群,大大提高工作效率。   在二进制搭建k8集群时,我们就

    2024年01月25日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包