【云原生 | 从零开始学Kubernetes】三、Kubernetes集群管理工具kubectl

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

概述


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


21.png


命令格式


命令格式如下


kubectl [command] [type] [name] [flags]


参数


·command:指定要对资源执行的操作,例如create、get、describe、delete


·type:指定资源类型,资源类型是大小写敏感的,开发者能够以单数,复数,缩略的形式指定。


·name:指定资源的名称,名称也是大小写敏感的,如果省略名称,则会显示所有的资源。


·flags:指定额外的可选参数,比如可以用 -s 或者 -server参数指定Kubernetes API server的地址和端口


例如:


kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
kubectl get pods


22.png


常见命令


kubectl help 获取更多信息


通过 help命令,能够获取帮助信息


# 获取kubectl的命令
kubectl --help
# 获取某个命令的介绍和使用
kubectl get --help
# 查看目前的状态
kubectl get cs
# 查看所有pod
kubectl get pod 
# 查看某个pod
kubectl get pod pod_name
# 查看某个pod,以yaml格式展示结果
kubectl get pod pod_name -o yaml


基础命令


常见的基础命令


命令

介绍

create

通过文件名或标准输入创建资源

expose

将一个资源暴露为一个新的Service

run

在集群中运行一个指定的镜像

set

在对象上设置特定的功能

get

显示一个或多个资源

explain

展示文档参考资料

edit

使用默认的编辑器编辑一个资源

delete

通过文件名,标准输入,资源名称或标签来删除资源

apply

通过文件名或标准输入对资源应用配置

patch

补丁修改、更新资源

replace

通过文件名或标准输入替换一个资源

convert

不同的API版本之间转换配置文件

label

更新资源上的标签

annotate

更新资源上的注释

completion

用于实现kubectl工具自动补全

api-versions

打印受支持的API版本

config

修改kubeconfig文件(用于访问API,比如配置认证信息)

help

所有命令帮助

plugin

运行一个命令行插件

version

打印客户端和服务版本信息


部署命令


命令

介绍

rollout

管理资源的发布

rolling-update

对给定的复制控制器滚动更新

scale

扩容或缩容Pod数量,Deployment、ReplicaSet、RC或Job

autoscale

创建一个自动选择扩容或缩容并设置Pod数量

集群管理命令


命令

介绍

certificate

修改证书资源

cluster-info

显示集群信息

top

显示资源(CPU/M)

cordon

标记节点不可调度

uncordon

标记节点可被调度

drain

驱逐节点上的应用,准备下线维护

taint

修改节点taint标记


故障和调试命令


命令

介绍

describe

显示特定资源或资源组的详细信息

logs

在一个Pod中打印一个容器日志,如果Pod只有一个容器,容器名称是可选的

attach

附加到一个运行的容器

exec

执行命令到容器

port-forward

转发一个或多个

proxy

运行一个proxy到Kubernetes API Server

cp

拷贝文件或目录到容器中

auth

检查授权

目前经常使用的命令


# 创建一个nginx镜像
kubectl create deployment nginx --image=nginx
# 对外暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看资源
kubectl get pod
# 查看详细信息ip,端口等。
kubectl get svc


演示


创建一个namespace


[root@k8smaster ~]# kubectl create namespace paopao
namespace/paopao created


获取namespace


[root@k8smaster ~]# kubectl get ns
NAME              STATUS   AGE
default           Active   7d23h
kube-node-lease   Active   7d23h
kube-public       Active   7d23h
kube-system       Active   7d23h
paopao            Active   22s


在此namespace下创建并运行一个nginx的Pod


[root@k8smaster ~]# kubectl run pod --image=nginx:latest -n paopao
pod/pod created


查看新创建的pod


[root@k8smaster ~]# kubectl get pod -n paopao
NAME   READY   STATUS    RESTARTS   AGE
pod    1/1     Running   0          3m14s


删除指定的namespace


[root@master ~]# kubectl delete ns dev
namespace "dev" deleted


创建/更新资源 使用声明式对象配置 kubectl apply -f XXX.yaml


删除资源 使用命令式对象配置 kubectl delete -f XXX.yaml


查询资源 使用命令式对象管理 kubectl get(describe) 资源名称


资源管理方式


命令式对象管理:直接使用命令去操作kubernetes资源,直接操作对象,适合测试用,比较简单,缺点是只能操作活动对象,无法审计跟踪。


kubectl run nginx-pod --image=nginx --port=80


命令式对象配置:通过命令配置和配置文件去操作kubernetes资源,直接操作文件,适合开发,可以审计以及跟踪,但是项目太大的话,配置文件多就会很多,操作麻烦。


kubectl create -f nginx-pod.yaml
kubectl patch -f nginx-pod.yaml


声明式对象配置:通过apply命令和配置文件去操作kubernetes资源,直接操作目录,适合开发,支持目录操作,但是不好调试。


kubectl apply -f nginx-pod.yaml


资源类型


kubernetes中所有的内容都抽象为资源,可以通过下面的命令进行查看:


kubectl api-resources


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3天前
|
运维 Kubernetes Cloud Native
构建高效云原生运维体系:Kubernetes最佳实践
【5月更文挑战第9天】 在动态和快速演变的云计算环境中,高效的运维是确保应用稳定性与性能的关键。本文将深入探讨在Kubernetes环境下,如何通过一系列最佳实践来构建一个高效且响应灵敏的云原生运维体系。文章不仅涵盖了容器化技术的选择与优化、自动化部署、持续集成/持续交付(CI/CD)流程的整合,还讨论了监控、日志管理以及灾难恢复策略的重要性。这些实践旨在帮助运维团队有效应对微服务架构下的复杂性,确保系统可靠性及业务的连续性。
|
3天前
|
Kubernetes Cloud Native 持续交付
构建高效稳定的云原生应用:容器编排与微服务治理实践
【5月更文挑战第14天】 随着企业数字化转型的深入,云原生技术以其弹性、敏捷和可扩展的特性成为现代应用开发的首选模式。本文将探讨如何通过容器编排工具如Kubernetes以及微服务架构的有效治理,构建和维护高效且稳定的云原生应用。我们将分析容器化技术的优势,并结合案例讨论在多云环境下实现持续集成、持续部署(CI/CD)的最佳实践,同时解决微服务带来的分布式复杂性问题。通过本文的阐述,读者将获得一套提升系统可靠性和业务连续性的策略框架。
7 0
|
3天前
|
Kubernetes Cloud Native 持续交付
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
【5月更文挑战第7天】本文探讨了Docker和Kubernetes如何协同构建和管理云原生应用。Docker提供容器化技术,Kubernetes则负责容器的部署和管理。两者结合实现快速部署、自动扩展和高可用性。通过编写Dockerfile创建镜像,然后在Kubernetes中定义部署和服务进行应用暴露。实战部分展示了如何部署简单Web应用,包括编写Dockerfile、构建镜像、创建Kubernetes部署配置以及暴露服务。Kubernetes还具备自动扩展、滚动更新和健康检查等高级特性,为云原生应用管理提供全面支持。
【Docker专栏】Kubernetes与Docker:协同构建云原生应用
|
3天前
|
Kubernetes Cloud Native 持续交付
构建高效云原生应用:Kubernetes与微服务架构的融合
【5月更文挑战第6天】 在数字化转型的浪潮中,企业正迅速采纳云原生技术以实现敏捷性、可扩展性和弹性。本文深入探讨了如何利用Kubernetes这一领先的容器编排平台,结合微服务架构,构建和维护高效、可伸缩的云原生应用。通过分析现代软件设计原则和最佳实践,我们提出了一个综合指南,旨在帮助开发者和系统架构师优化云资源配置,提高部署流程的自动化水平,并确保系统的高可用性。
32 1
|
3天前
|
Kubernetes Cloud Native Go
Golang深入浅出之-Go语言中的云原生开发:Kubernetes与Docker
【5月更文挑战第5天】本文探讨了Go语言在云原生开发中的应用,特别是在Kubernetes和Docker中的使用。Docker利用Go语言的性能和跨平台能力编写Dockerfile和构建镜像。Kubernetes,主要由Go语言编写,提供了方便的客户端库与集群交互。文章列举了Dockerfile编写、Kubernetes资源定义和服务发现的常见问题及解决方案,并给出了Go语言构建Docker镜像和与Kubernetes交互的代码示例。通过掌握这些技巧,开发者能更高效地进行云原生应用开发。
58 1
|
3天前
|
Kubernetes Cloud Native 持续交付
构建高效云原生应用:以Kubernetes为核心
【4月更文挑战第27天】 在当今数字化转型的浪潮中,企业急需构建灵活、可扩展的应用来应对不断变化的市场需求。云原生技术以其独特的优势应运而生,成为推动现代应用开发和部署的重要力量。本文深入探讨了云原生的核心组件之一——Kubernetes,解析其如何通过容器编排优化资源利用,提高应用的弹性和可维护性。同时,文章将展示如何在云平台上实现高效的服务发现、自动扩缩容以及持续集成和持续部署(CI/CD),进一步阐述云原生架构下的最佳实践和面临的挑战。
|
3天前
|
存储 Kubernetes Docker
Kubernetes(K8S)集群管理Docker容器(概念篇)
Kubernetes(K8S)集群管理Docker容器(概念篇)
|
3天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
25 4
|
3天前
|
消息中间件 Cloud Native 开发者
电子好书发您分享《阿里云云原生开源开发者沙龙北京站 PPT 合集 》
**阿里云开源沙龙PPT合集:北京站聚焦云原生技术** 探索云原生领域的深度与广度,[阿里云](https://developer.aliyun.com/ebook/8334/116563?spm=a2c6h.26392459.ebook-detail.5.da096cf6t38G15)分享了北京开发者沙龙的精彩内容,涵盖微服务、消息队列等主题,助力开发者洞悉行业趋势。![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_67b12f6cad6e4b2786859b3a668b3351.png)
47 3
|
3天前
|
人工智能 监控 Cloud Native
iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报
iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报

推荐镜像

更多