Kubernetes 概述

  什么是K8s


   Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It har a large , rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.

  Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署 ,自动扩容缩容 ,维护等功能;

使用 Kubernetes 的好处


  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源, 优化硬件资源的使用

K8s 能做什么


Kubernetes has a number of features. It can be thought of as:

  • a container orchestration platform
  • a microservices platform(微服务)
  • a portable cloud platform and a lot more.

Kubernetes 不是什么


Kubernetes 并不是传统的 Paas (平台即服务) 系统; <Platform-as-a-Service: 把应用服务的运行和开发环境作为一种服务提供的商业模式>

  • Kubernetes 不限制支持应用的类型, 不限制应用框架, 但限制受支持的语言 runtimes;
  • Kubernetes 不提供中间件, 数据处理框架, 数据库或者集群存储系统 ( 如 Ceph ) 作为内置服务;
  • Kubernetes 不部署源码不编译应用;
  • Kubernetes 允许用户选择自己的日志, 监控 和 报警系统;
  • Kubernetes 不提供或授权一个全面的应用程序配置 语言/系统;
  • Kubernetes 不提供任何机器配置, 维护, 管理 或者 自修复系统.

Kubernetes 的部署方式


  1. Minikube, 官网上即可使用, 微型伪分布式, 适合学习 , 体验; https://kubernetes.io/docs/tutorials/hello-minikube 选择 " Launch Terminal "
  2. Kubeadmin, 适合实验环境使用, 暂时无法做到 Master 节点高可用[ 自签证书只是一年有效期, K8s会宕了 ];
  3. 二进制部署方式, 相对复杂, 适合生产环境投产使用.

在企业中落地 Kubernetes 集群需要解决哪些问题


  • 交付到 kubernetes 集群的程序/服务如何对外提供服务 ?
  • 容器跨宿主机如何通信 ?
  • Kubernetes 监控和日志收集问题如何解决 ?
  • 基于 Kubernetes 的 CI 和 CD 怎么做 ?
    • CI(CONTINUOUS INTEGRATION 持续集成)
      • 在持续集成环境中, 开发人员将会频繁的提交代码到主干. 这些新提交在最终合并到主线之前, 都需要通过编译和自动化测试流进行验证. 这样做基于之前持续集成过程中很重视自动化测试验证结果, 以保障所有的提交在合并主线之后的质量问题, 对可能出现的一些问题进行预警;
    • CD(CONTINUOUS DELIVERY 持续交付)
      • 持续交付就是将我们的应用发布出去的过程, 这个过程可以确保我们尽可能快的实现交付. 这就意味着除了自动化测试, 我们还需要有自动化的发布流, 以及通过一个按键就可以随时随地实现应用部署上线;
      • 通过持续交付, 可以决定每天, 每周, 每两周发布一次, 这完全可以根据自己的业务进行设置;
  • 如何平滑迁移服务到 kubernetes 集群 ?
原文地址:https://www.cnblogs.com/haorong/p/11232923.html