1. K8s 简介

  • 微服务:
    • 单体应用:应用的每一个功能都被捆绑在一起,不利于部署,升级,扩缩容
    • 微服务应用:应用的每一个功能拆分为自己的小型应用
  • 云原生:
    • 按需扩缩容
    • 自我修复
    • 滚动更新
    • 在任何 K8s 集群上运行
  • 编排器:
    • 将微服务聚集在一起,组成一个应用,并提供云原生功能

2. 为什么需要 K8s

K8s 源自 Google 的 Borg 和 Omega。

K8s 将基础设施抽象化和商品化,是云的操作系统。

云的抽象化改变了 AWS 云的垄断地位,只要可以在 K8s 云上运行的应用,是不是在 AWS 云上运行就没有区别。

K8s 的优点:

  1. 可以在不同的云之间部署和切换;
  2. 可以在多个云上部署;
  3. 可以在云和本地之间切换。

3. K8s 集群

K8s 集群一般不会跨越多云,也不会跨越本地和云,这主要是受到网络速度的制约。

  • 主节点:运行控制面板服务
  • 工作节点:运行用户应用
    • Kubelet:与控制面板通信
    • 容器运行时:启动和停止容器
  • Kubectl:管理 K8s 集群
  • K8s 即服务:
    • AWS:KES
    • Azure:AKS
    • DO:DOKS
    • GCP:GKE
    • Linode:LKE(最简单)

4. 获取 K8s

  • Docker Desktop
  • Linode Kubernetes Engine
    • kubectl 连接集群配置:.kube/kubeconfig

5. 应用 K8s

K8s 放弃 Docker 作为其容器运行时的支持,但是 Docker 创建的容器化应用在 K8s 仍然支持,因为都是基于开放容器协议(OCI)标准的容器镜像。

  • 构建容器镜像/容器化应用:docker image build
  • 托管容器镜像到远端仓库:docker image push
  • 查看集群:kubectl get nodes
  • 查看集群配置:kubectl config get-contexts
  • 部署 Pod:kubectl apply -f pod.yaml
  • 查看 Pod:kubectl describe pod <pod_name>
  • 部署 Service【连接到 Pod】:kubectl apply -f svc.yaml
    • 本地集群:NodePort
    • 云端集群:LoadBalancer
  • 部署 Deploy:kubectl apply -f deploy.yaml
    • 自我修复
    • 扩缩容:replicas
    • 滚动更新:RollingUpdate
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐