Kubernetes集群命令行工具kube_ctl 常用命令

2024-05-24 20:38

本文主要是介绍Kubernetes集群命令行工具kube_ctl 常用命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Kubernetes集群命令行工具kube_ctl 常用命令

kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。

1、配置kubectl 命令自动补全

[root@k8s-master ~]#source <(kubectl completion bash)

2、K8S集群创建好后查看集群信息

[root@k8s-master ~]# kubectl cluster-infoKubernetes master is running at https://10.0.0.15:6443KubeDNS is running at https://10.0.0.15:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.[root@k8s-master ~]#

3、查看deployment资源的详细信息


[root@k8s-master ~]# kubectl describe deployment test-nginx

4、deployment 扩容

[root@k8s-master ~]# kubectl scale deployment --replicas=2 test-nginxdeployment.apps/test-nginx scaled

5、通过kubectl命令行创建deployment


[root@k8s-master ~]# kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --dry-run=true

nginx-deploy:是我们创建 deployment 的名字

--image: 指定使用的镜像

--port=80 :容器暴露的端口,该端口只能在 K8S 集群中访问

-dry-run=true : 检测语法是否错误,不会正式创建

6、通过Kubectl命令行创建service

[root@k8s-master ~]# kubectl expose deployment nginx-deploy --name=nginx --port=80 --protocol=TCP
service/nginx exposed
[root@k8s-master ~]# kubectl get svc
NAME        TYPE        CLUSTER-IP      EXTERNAL-IP  PORT(S)  AGE
kubernetes  ClusterIP  10.96.0.1        <none>        443/TCP  48d
nginx        ClusterIP  10.101.197.235  <none>        80/TCP    9s
[root@k8s-master ~]# kubectl expose deployment test-nginx --type=ClusterIP --name=no-nginx --port=8090 --target-port=80

7、查看一个完整的node定义

[root@k8s-master ~]# kubectl get nodes k8s-master -o ymalallocatable:cpu: "2"ephemeral-storage: "48294789041"hugepages-1Gi: "0"                    hugepages-2Mi: "0"memory: 2792832Kipods: "110"

allocatable :表示一个Node的可分配资源量

8、查看Node节点的标签labels

[root@k8s-master ~]# kubectl get nodes --show-labelsNAME        STATUS  ROLES    AGE  VERSION  LABELSk8s-master  Ready    master  48d  v1.16.2  beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/master=k8s-slave1  Ready    <none>  48d  v1.16.2  beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,fluentd=true,ingress=true,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-slave1,kubernetes.io/os=linux,log=truek8s-slave2  Ready    <none>  48d  v1.16.2  beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,fluentd=true,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-slave2,kubernetes.io/os=linux

9、查看K8S组件日志

1. 组件日志:

    /var/log/kube-apiserver.log/var/log/kube-proxy.log/var/log/kube-controller-manager.log/var/log/kubelet.log

2. 使用systemd管理的kubelet日志

   $ journalctl –u kubelet

3. 使用K8S插件部署的pod应用日志:

   $ kubectl logs -f kube-proxy

10、K8S应用日志

  • 从容器标准输出截获:
$ kubectl logs -f {pod name} –c {container name}$ docker logs -f {docker name}
  • 直接进入容器内查看日志:
$ kubectl logs -f {pod name} –c {container name}$ docker logs -f {docker name}

11、deployment替换容器镜像进行应用更新发布

[root@k8s-master containers]# kubectl set image deployment/test-nginx test-nginx=nginx:1.9.1deployment.apps/test-nginx image updated

12、查询deployment滚动升级状态,是否成功

[root@k8s-master containers]# kubectl rollout status deployment test-nginxdeployment "test-nginx" successfully rolled out

13、查看deployment升级记录

  • 查看升级版本
[root@k8s-master containers]# kubectl rollout history deployment test-nginxdeployment.apps/test-nginxREVISION  CHANGE-CAUSE1        <none>2        <none>
  • 回滚版本2
[root@k8s-master containers]# kubectl rollout undo deployment test-nginx --to-revision=2#回滚到版本2deployment.apps/test-nginx with revision #2Pod Template:Labels:	pod-template-hash=58b4bc4b88run=test-nginxContainers:test-nginx:Image:	nginx:1.9.1Port:	<none>Host Port:	<none>Environment:	<none>Mounts:	<none>Volumes:	<none>

14、service 的分类及创建

  • clusterip:
[root@k8s-master ~]# kubectl create service clusterip svc-cp --tcp=80:8080
  • nodeport
[root@k8s-master ~]# kubectl create service nodeport svc-np --tcp=1234:80
  • headless
[root@k8s-master ~]# kubectl create service clusterip svc-hl --clusterip="None"

15、kube-dns 集群域名解析验证

  1. 下载busybox 的yaml文件并启动pod:
[root@k8s-master ~]# wget https://kubernetes.io/examples/admin/dns/busybox.yaml[root@k8s-master ~]# kubectl apply -f busybox.yaml
  1. 进入Pod里面使用nslookup查询
[root@k8s-master ~]# kubectl exec -it busybox -- nslookup kubernetes.default

16、查看全部namespaces下的所有POD信息

[root@k8s-master kubernetes]# kubectl get pods --all-namespaces

17、查看kubernetes 通过manifest方式构建的pod的yaml文件

[root@k8s-master kubelet]# cd /etc/kubernetes/manifests/[root@k8s-master manifests]# lsetcd.yaml  kube-apiserver.yaml  kube-controller-manager.yaml  kube-scheduler.yaml[root@k8s-master manifests]#

这篇关于Kubernetes集群命令行工具kube_ctl 常用命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999469

相关文章

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满