By Joey Yang
云计算(Cloud Computing)是基于互联网的相关服务的增加, 使用和交付模式
Cloud Native 是Matt Stine提出的一个概念, 它是一个思想和方法论的集合
微服务体系结构是一种架构风格, 将应用程序构建为一系列松散耦合的服务,
实现业务功能, 微服务架构支持大型复杂应用的持续交付/部署
DevOps就是解决Dev与Ops隔阂的一种思维方式和文化氛围
容器可以作为实现DevOps中持续交付的基础工具之一
容器化更容易实现微服务需要的监控和反馈(告警/日志/度量/链路追踪)
Cloud Native Computing Foundation (云原生计算基金会)
https://www.cncf.io/是一个厂商中立的基金会, 坚持和整合开源技术来让编排容器作为微服务架构的一部分,
致力于云原生应用推广和普及的一支重要力量
集群管理的标准
容器和服务编排的规范
云原生操作系统
跨越异构系统的标准层
https://github.com/kubernetes/kubernetesKubernetes是Google基于Borg开源的容器编排调度引擎,作为CNCF最重要的组件之一, 它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态, Kubernetes可以帮你将系统自动得达到和维持在这个状态
Build, Ship, and Run Any App, Anywhere
https://docs.docker.comyum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce systemctl enable docker systemctl start docker docker run hello-world
docker run –name busybox -it –rm busybox docker run –name mongodb -d -p 27017:27017 -v /home/mongo_data:/data/db mongo mongod –bind_ip_all docker run -it –name node_cmd –rm node /bin/bash docker stop -f $(docker ps -a -q) docker rm -f $(docker ps -a -q) docker rmi nginx // dockerhub: https://hub.docker.com/ docker pull mysql:5.6 docker build --rm -t name:tag DockerfileDir docker exec -it container mkdir /data docker diff container docker commit --author "xx" --message "xxx" container namespace/image:tag docker push namespace/image:tag
类别 | 名称 |
---|---|
资源对象 | Pod、 StatefulSet、 DaemonSet、 ReplicaSet、ReplicationController、 Deployment、Job、CronJob、HorizontalPodAutoscaler |
配置对象 | Namespace、 Node、 Service、 Secret、 ConfigMap、 Ingress、Label、CustomResourceDefinition、 ServiceAccount |
存储对象 | Volume、 Persistent Volume、Persistent Volume Claim |
策略对象 | SecurityContext、ResourceQuota、LimitRange |
Kubernetes 具备完善的集群管理能力,包括多层次的安全防护和准入机制、多租户应用支撑能力、 透明的服务注册和服务发现机制、 内建负载均衡器、故障发现和自我修复能力、服务滚动升级和在线扩容、 可扩展的资源自动调度机制、多粒度的资源配额管理能力。 Kubernetes 还提供完善的管理工具, 涵盖开发、部署测试、运维监控等各个环节
对底层屏蔽了不同类型计算资源的差异
对上层提供了一个标准化的集群管理平台
这些能力极大简化了: 开发, 测试, 运维监控 (对于开发人员只需关注实现逻辑, 对于测试人员无需考虑环境的差异, 对于运维无需关注特定节点, 只需关注整个集群状态)
对比Hystrix, Eureka, Ribbon. 同样实现了对服务调用的细粒度控制, 但Sidecar方式部署对应用透明
K8S提供了统一的网关, 配置中心, 服务发现和负载均衡, Service Mesh提供了更强大的服务治理能力...
实现微服务不只是SpringCloud一条路