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

相关文章

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

springBoot (springCloud2025)集成redisCluster 集群的操作方法

《springBoot(springCloud2025)集成redisCluster集群的操作方法》文章介绍了如何使用SpringBoot集成RedisCluster集群,并详细说明了pom.xm... 目录pom.XMLapplication.yamlcluster配置类其他配置类连接池配置类Redis

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

使用python制作一款文件粉碎工具

《使用python制作一款文件粉碎工具》这篇文章主要为大家详细介绍了如何使用python制作一款文件粉碎工具,能够有效粉碎密码文件和机密Excel表格等,感兴趣的小伙伴可以了解一下... 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密的文件恢

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

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