从零开始的K8S学习笔记(三)部署服务以及kubectl的使用

kubectl是Kubernetes的命令行工具,用于部署和管理应用、扩展集群、调试故障。文章介绍了kubectl的安装、验证、资源创建与删除、服务暴露、资源列表查看、资源详情及删除、Pod副本扩展和缩减等操作。示例中使用了minikube作为本地开发环境。

目录

什么是kubectl?

安装kubectl

验证是否安装成功

获取版本信息

验证 kubectl 配置

创建和删除资源

创建部署

暴露服务

获取资源列表

查看服务列表

查看部署列表

获取Pod列表

获取Namespace列表

获取所有资源列表

查看资源详细信息

查看Pod详细信息

查看Deployment详细信息

查看Service详细信息

查看Namespace详细信息

删除资源

删除服务

删除部署

扩展和缩减Pod副本

扩展Deployment副本数

缩减Deployment副本数

运行命令和执行操作

在Pod中运行命令

在Pod中创建临时终端

执行Pod端口转发

应用和更新配置

应用配置文件

更新资源

查看配置文件内容


这里我将使用前文安装minikube来进行讲解。

感兴趣可移步至原文:

从零开始的K8S学习笔记(二)K8S本地开发环境——minikube安装部署及实践 - 知乎 (zhihu.com)

什么是kubectl?

kubectl是Kubernetes命令行工具,可以通过命令行界面或脚本与Kubernetes集群进行通信,并执行各种操作,包括:

  1. 部署和管理应用程序:kubectl可以使用YAML或JSON文件定义和创建Kubernetes资源对象,例如部署、服务、Pod、副本集、配置映射等。可以使用kubectl创建、更新、删除和查看这些资源,以及监控其状态和日志。
  2. 扩展和管理集群:kubectl可以通过命令行管理Kubernetes集群的各个组件,例如节点、命名空间、存储卷、服务账户等。可以使用kubectl扩展集群的规模、添加或删除节点,以及执行与集群管理相关的操作。
  3. 调试和故障排除:kubectl提供了各种命令和选项,用于诊断和调试Kubernetes集群中的问题。可以查看Pod的日志、执行进入容器的命令、获取集群事件等。
  4. 资源监控和调整:kubectl可以用于查看Kubernetes集群和资源的状态、监控资源使用情况、扩展或缩减资源的副本数量等。

kubectl提供了强大的功能和灵活性,能够有效地管理和操作Kubernetes集群。

安装kubectl

安装工具​kubernetes.io/zh-cn/docs/tasks/tools/​编辑

我这里使用snap进行安装

snap install kubectl --classic

验证是否安装成功

获取版本信息

kubectl version --output=yaml

验证 kubectl 配置

为了让 kubectl 找到并访问 Kubernetes 集群,它需要一个 kubeconfig 文件,

该文件是在使用kube-up.sh创建集群 或成功部署 Minikube 集群时自动创建的。

默认情况下,kubectl 配置位于~/.kube/config.

通过获取集群状态来检查 kubectl 是否已正确配置:

kubectl cluster-info

创建和删除资源

创建部署

kubectl create deployment hello-minikube1 --image=kicbase/echo-server:1.0 kubectl expose 

创建一个名为 hello-minikube1 的部署(Deployment),通过 --image ,指定要在创建的Pod中使用的容器镜像kicbase/echo-server:1.0

暴露服务

deployment hello-minikube1 --type=LoadBalancer --port=8080

将先前创建的 hello-minikube1 Deployment 暴露为一个Kubernetes服务。

服务(Service)是Kubernetes中用于公开应用程序或Pod的访问入口的对象。通过暴露服务,其他应用程序或用户可以通过该服务访问Deployment中运行的Pod副本。

在这个命令中,使用了 --type=LoadBalancer 标志来指定服务的类型为LoadBalancer。这意味着Kubernetes将为服务分配一个外部负载均衡器,并将流量路由到该负载均衡器上。--port=8080 标志指定了服务的端口号为8080。

通过查询NodePort和Services,可以在浏览器中输入 http://<node-ip>:<port> 来访问该服务:

如图所示,服务已成功启动。

获取资源列表

查看服务列表

kubectl get services

查看部署列表

kubectl get deployments

获取Pod列表

kubectl get pods

获取Namespace列表

kubectl get namespaces

获取所有资源列表

kubectl get all

查看资源详细信息

查看Pod详细信息

kubectl describe pod <pod-name>

查看Deployment详细信息

kubectl describe deployment <deployment-name>

查看Service详细信息

kubectl describe service <service-name>

查看Namespace详细信息

kubectl describe namespace <namespace-name> 

删除资源

删除服务

kubectl delete service <service-name>

删除部署

kubectl delete deployment <deployment-name>

扩展和缩减Pod副本


扩展Deployment副本数

kubectl scale deployment <deployment-name> --replicas=<replica-count>

缩减Deployment副本数

kubectl scale deployment <deployment-name> --replicas=<replica-count>

运行命令和执行操作


在Pod中运行命令

kubectl exec -it <pod-name> -- <command>

在Pod中创建临时终端

kubectl exec -it <pod-name> -- /bin/bash

执行Pod端口转发

kubectl port-forward <pod-name> <local-port>:<pod-port>

应用和更新配置


应用配置文件

kubectl apply -f <file-name> 

更新资源

kubectl apply -f <file-name>

查看配置文件内容

kubectl get -f <file-name> -o yaml

文章篇幅有限,常用的kubectl命令就先介绍到这里。

参考自Kubernetes官网,minikube官网。

如果能对你有所启发的话,希望能不吝点赞关注。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值