K8S介绍和基本操作
K8S介绍和基本操作
简介
Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。
Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。
Kubernetes 为你提供:
服务发现和负载均衡
Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
存储编排
Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。
自动部署和回滚
你可以使用 Kubernetes 描述已部署容器的所需状态, 它可以以受控的速率将实际状态更改为期望状态。 例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。
自动完成装箱计算
你为 Kubernetes 提供许多节点组成的集群,在这个集群上运行容器化的任务。 你告诉 Kubernetes 每个容器需要多少 CPU 和内存 (RAM)。 Kubernetes 可以将这些容器按实际情况调度到你的节点上,以最佳方式利用你的资源。
自我修复
Kubernetes 将重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器, 并且在准备好服务之前不将其通告给客户端。
密钥与配置管理
Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。
K8S主要概念
见该知乎文章
kubectl指令安装
Linux
Macos
Windows
kubectl常用指令
get(最常用)
使用 get 命令可以获取当前集群中可用的资源列表,包括:
- Namespace
- Pod
- Node
- Deployment
- Service
- ReplicaSet
kubectl get nodes
kubectl get ns
kubectl get pod
kubectl -n openmmlab-staging get pod
查看openmmlab-staging命名空间下的pod
logs(最常用)
ogs 命令可以提供 Kubernetes 中 Pod 的更多详细信息。了解这种区别可以帮助开发者更好地对应用程序内部以及 Kubernetes 内部发生的问题,并进行故障排除
kubectl -n openmmlab-staging logs -f –tail 100 aide-be-deploy-86f74f4bb4-gh9js
查看openmmlab-staging命名空间下aide-be-deploy-86f74f4bb4-gh9js容器的日志,显示100行
scale(常用)
kubectl -n openmmlab-staging scale deploy aide-be-deploy –replicas=0
将openmmlab-staging命名空间下aide-be-deploy容器个数设置为0
kubectl -n openmmlab-staging scale deploy aide-be-deploy –replicas=1
将openmmlab-staging命名空间下aide-be-deploy容器个数设置为1
这两个操作==重启该服务
config(常用)
kubectl config get-contexts
create
可以查询资源后,下一步是创建资源。我们可以用 kubectl 在集群中创建任何类型的资源,包括:
- Service
- Cronjob
- Deployment
- Job
- Namespace(ns)其中,一些资源的创建需要设置配置文件、命名空间以及资源名称。例如,创建命名空间就需要一个额外参数来指定命名空间。
1 |
|
edit
当我们创建好资源后,如果需要修改,该怎么办?这时候就需要 kubectl edit 命令了。我们可以用这个命令编辑集群中的任何资源。它会打开默认文本编辑器。如果我们要编辑现有的 cron job,则可以执行:
1 |
|
delete
学会了以上命令后,下面我们将进行删除操作。刚刚编辑的 cronjob 是两个 cronjobs 之一,现在我们删除整个资源。
1 |
|
需要注意的是,如果不知道资源是否有关联信息,最好不要删除。因为删除后无法恢复,只能重新创建。
apply
上文提到,某些命令需要配置文件,而 apply 命令可以在集群内调整配置文件应用于资源。虽然也可以通过命令行 standard in (STNIN) 来完成,但 apply 命令更好一些,因为它可以让你知道如何使用集群,以及要应用哪种配置文件。
1 |
|
K8S可视化工具Lens简单介绍
Lens
是一个强大的 kubernetes IDE。可以实时查看 kubernetes 集群状态,比如 Pod实时日志查看、集群Events实时查看、集群故障排查等。有了 Lens,不在需要敲打很长的 kubectl 命令,只要使用鼠标点击几下,非常便捷。
Lens
支持多平台安装,目前支持 Linux
、MacOS
、Windows
。
- 用户体验性和可用性非常好
- 多集群管理;支持数百个集群
- 独立应用程序;无需在集群中安装任何东西
- 集群状态实时可视化
- 内置
Prometheus
提供资源利用率图表和历史趋势图表 - 提供终端访问节点和容器
- 性能经过优化,可应用于大规模集群(已在25k pod的集群进行了测试)
- 完全支持 Kubernetes
RBAC
界面展示
Lens客户端下载
激活
登陆账号后需要用户订阅,可以选择激活免费版然后就可以使用了
添加config配置
点击add cluster
将原本放在/.kube
下的config文件copy过来
常见操作
查看nodes
查看不同namespace下的pods
查看某个pod的日志或者直接连接该pod的shell
新建一个terminal终端
总结
Lens可以可视化的监控k8s集群的所有数据,可以便捷的查看日志,进行pod的伸缩等,最重要的是界面UI非常好看,好评!