白话kubernetes的十万个为什么 - kubernetes

Kubernetes简称?

答:k8s或kube。

Kubernetes是什么?

答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序。本质上是一种特殊的数据库,里面存储的是能够组成kubernetes模型的各种资源,包括Pods、Deployments、Services、Config Maps、Secrets、Namespaces、Nodes、Service Accounts、Ingress、Jobs等等。可以参考:kubernetes实战之运行aspnetcore webapi微服务第9点部分浅析kubernetes。

Kubernetes能干什么?

答:容器编排引擎,管理容器的生命周期和方方面面。

如何与Kubernetes系统进行交互?

答:使用客户端工具kubectl,相当于kubernetes的RESTful接口,这是交互的基本模式。

kubectl有哪些优化了用户体验的命令?

答:kubectl scale 直接指明需要伸缩的Deployment名字即可,而不需要数据库中修改相关资源。 kubectl run 使用某镜像创建Deployment,无需写yml文件完整的描述pod的各种细节。 kubectl expose deploy [name] --type=NodePort --name=[name] --port=80 直接为部署暴露类型为NodePort的服务。

在实际应用中一般如何操作资源?

答:一把使用yml文件或json文件,配合各种kubectl命令。

kubernetes最常用的数据库?

答:etcd。

什么是ReplicaSet?

答:一个“副本集”对象,封装pod的弹性伸缩。例如:使用ReplicaSet告诉k8s集群部署pod,并始终维持5个pod实例。

ReplicaSet的实际工作流程?

答:ReplicaSet Controller监控数据库中的数据变化, 然后检查实际环境中ReplicaSet对象所拥有的pod实际实例数量,如果超过期望的数量,就杀掉富余的pod;如果不足,就立即创建新的pod补充。

kubelete是什么?

答:一种特殊的控制器,运行在集群中每个执行节点上,是集群的守护神。

kubelete是干什么的?

答:当第一次集群调度部署完成后,后续kubelete会持续监控数据库变化,管理pod的生命周期,发现被分配到它所在的节点上运行的那些pod,如果找到新pod,则会在该节点上运行这个新pod。

kubenetes会直接创建容器吗?

答:不会。它使用可插拔的容器引擎(Docker、Rocket等)来实现容器创建。

kuberproxy的工作流程?

答:当有数据包发送到主机上时,它将其路由到正确的pod或容器。

kubernetes有哪些组件?

答:kubectl 客户端命令行工具 kube-apiserver 提供RESTful风格的统一接口 kube-scheduler 负责资源与pod的匹配 kube-controller-manager 负责管理“资源”同步 kubelet 管理pod生命周期 kube-proxy 负责k8s集群网络配置

什么是Service?

答:为pod稳定地提供服务发现和负载均衡的能力。

Deployment有哪些功能?

答:集成了上线部署、滚动升级、创建脚本、暂停上线任务、恢复上线任务、滚动到以前某一版本等功能。

Volume是干什么的?

答:用于存储持久化数据,不同类型的Volume有不同的生命周期。

kubectl 命令行语法?

答:kubectl [command] [type] [name] [flags] command:get、create、describe、delete。 type:资源类型 name:资源名称 flags:命令行选项

kubectl 常见的命令有哪些?

答:kubectl cluster-info 查看集群信息 kubectl version 显示命令行和kube服务端的版本 kubectl api-versions 显示支持的api版本集合 kubectl config view 显示当前kubectl的配置信息 kubectl logs 查看pod日志 kubectl exec -t [podname] /bin/bash 以交互模式进入容器执行命令 kubectl scale 实现水平或收缩 kubectl rollout status deploy [name]部署状态变更状态检查 kubectl rollout history 部署历史 kubectl rollout undo 回滚部署到最近或者某个版本 kubectl get nodes 查看集群中的节点 kubectl get [type] [name] 查看某种类型资源 kubectl describe [type] [name] 查看特定资源实例详情 kubectl get ep 查看路由端点信息 kubectl set image deploy [deployment-name] [old-image-name]=[new-image-name] 为部署设置镜像 kubectl cordon [nodeid] 标记节点不接受调度 kubectl uncordon [nodeid] 恢复节点可以接受调度 kubectl drain [nodeid] 驱赶该节点上运行的所有容器到其他可用节点

持续更新中.......

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励