Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

学习 Kubernetes (Part 1: 初识) #318

Open
nonocast opened this issue Aug 19, 2022 · 0 comments
Open

学习 Kubernetes (Part 1: 初识) #318

nonocast opened this issue Aug 19, 2022 · 0 comments

Comments

@nonocast
Copy link
Owner

nonocast commented Aug 19, 2022

Kubernetes is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications. The open source project is hosted by the Cloud Native Computing Foundation (CNCF).

Kubernetes不是一个简单的事情,所以还是从动机和抽象开始建立概念模型:

  • Kubernetes是一个engine,有很多不同的发行版本,包括Rancher, GKE, Apache Mesos等,k3s, minikube这类属于lightweight的发行版本,这个可以类比为linux kernel和ubuntu, centos之间的关系
  • Docker的本质是通过linux namespace和cgroup实现对进程的隔离和限制,形成了对传统进程的一次抽象,kubernetes则是在container的基础上重新在跨主机的范畴上重新建立了"操作系统"的抽象,实现了"跨主机集群的自动部署、扩展以及运行应用程序容器的平台"
  • 再进一步说,kubernetes engine实现了在跨主机集群上调度"进程"的能力,所有在engine上运行的都是container
  • 作为操作系统级别的抽象就需要解决很多问题:
    • container: 对应linux process,实际在run的code
    • pod: a group of container,实现调度策略, 有点类似进程组
    • service: An abstract way to expose an application running on a set of Pods as a network service.
    • namespace: resource group, 可以建立理解为资源组,和windows的组策略类似
    • node: 指代一台主机设备
  • kubernetes在解决进程抽象的同时,就必须解决网络、存储等一系列问题,所以就自然形成了一个体系,以kubernetes作为原生平台进行开发的系统称之为cloud native。

anyway, 要从一个操作系统的视角去学习kubernetes,选择不同发行版本,如何安装操作系统,如何运行或是声明程序的运行,如何管理进程,如何配置网络路由,进程间如何通讯,如何监控,查看日志等等。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant