Google的Container Engine和Kubernetes到底是个什么关系
发布网友
发布时间:2022-04-24 13:27
我来回答
共1个回答
热心网友
时间:2022-05-02 10:59
我先整体看Kubernetes些理念基本架构 网络、 资源管理、存储、服务发现、负载均衡、高用、rolling upgrade、安全、监控等面向家简单介绍Kubernetes些主要特性
包括些需要注意问题主要目帮助家快速理解 Kubernetes主要功能今研究使用具候所参考帮助
1.Kubernetes些理念:
用户需要关需要少台机器需要关软件(服务)运行所需环境服务需要关api何服务拆服务何使用api整合
保证系统总按照用户指定状态运行
仅仅提给供容器服务同提供种软件系统升级式;保持HA前提升级系统用户想要功能难实现
些需要担需要担事情
更支持微服务理念划、细服务间边界比lablel、pod等概念引入
于Kubernetes架构参考官文档
致由些主要组件构包括Master节点kube-apiserver、kube-scheler、kube-controller-manager、控制组件kubectl、状态存储etcd、Slave节点kubelet、kube-proxy及底层网络支持(用Flannel、OpenVSwitch、Weave等)
看微服务架构设计目前能支持单服务横向伸缩 Kubernetes 未版本解决
2.Kubernetes主要特性
网络、服务发现、负载均衡、资源管理、高用、存储、安全、监控等面向家简单介绍Kubernetes些主要特性 -> 由于间限能简单些
另外于服务发现、高用监控些更详细介绍兴趣朋友通篇文章解
1)网络
Kubernetes网络式主要解决几问题:
a. 紧耦合容器间通信通 Pod localhost 访问解决
b. Pod间通信建立通信网比隧道、路由Flannel、Open vSwitch、Weave
c. PodService及外部系统Service通信引入Service解决
Kubernetes网络给每Pod配IP址需要Pod间建立链接基本需要处理容器主机间端口映射
注意:Pod重建IP重新配所内网通信要依赖Pod IP;通Service环境变量或者DNS解决
2) 服务发现及负载均衡
kube-proxyDNS v1前Service含字段portalip publicIPs 别指定服务虚拟ip服务口机ippublicIPs任意指定集群任意包含kube-proxy节点portalIp 通NAT式跳转container内网址v1版本publicIPS约定废除标记deprecatedPublicIPs仅用作向兼容portalIp改ClusterIp, service port 定义列表增加nodePort项即应node映射服务端口
DNS服务addon式需要安装skydnskube2dnskube2dns通读取Kubernetes API获取服务clusterIPport信息同watch式检查service变及收集变信息并于ip信息提交给etcd存档skydns通etcd内DNS记录信息启53端口外提供服务概DNS域名记录servicename.namespace.tenx.domain, "tenx.domain"提前设置主域名
注意:kube-proxy 集群规模较能访问性能问题考虑用其式替换比HAProxy直接导流Service endpints 或者 PodsKubernetes官修复问题
3)资源管理
3 层资源*式别Container、Pod、Namespace 层Container层主要利用容器本身支持比Docker CPU、内存、磁盘、网络等支持;Pod面*系统内创建Pod资源范围比或者CPU、memory需求;Namespace层用户级别资源限额包括CPU、内存限定Pod、rc、service数量
资源管理模型 -》 简单、通用、准确并扩展
目前资源配计算相简单没资源抢占类强功能通每节点资源总量、及已经使用各种资源加权计算某Pod优先非配哪些节点没加入节点实际用资源评估需要自scheler plugin支持其实kubelet已经拿节点资源要进行收集计算即相信Kubernetes续版本支持
4)高用
主要指Master节点 HA式 官推荐 利用etcd实现master 选举Masterkube-apiserver 保证至少master用实现high availability外loadbalancer式提供入口种式用作ha仍未熟据解未更新升级ha功能
张图帮助家理解:
etcd集群背景存kube-apiserver并用pod-master保证仅主master用同kube-shellerkube-controller-manager存且伴随着kube-apiserver 同间能套运行
5) rolling upgrade
RC 始设计让rolling upgrade变更容易通替换Pod更新service实现服务断间化基本思路创建复本1新rc并逐步减少rc复本、增加新rc复本rc数量0其删除
通kubectl提供指定更新镜像、替换pod间间隔rollback 前执行upgrade操作
同 Kuberntes支持版本同部署并通lable进行区service变情况调整支撑服务Pod测试、监控新Pod工作情况
6)存储
家都知道容器本身般数据进行持久化处理Kubernetes容器异退kubelet简单基于原镜像重启新容器另外我同Pod运行容器经需要些容器间进行共享些数据Kuberenetes Volume主要解决面两基础问题
Docker Volume概念相简单且目前支持限KubernetesVolume则着清晰定义广泛支持其核理念:Volume目录并同Pod所容器访问目录端用介质面内容则由使用特定Volume类型决定
创建带VolumePod:
spec.volumes 指定Pod需要volume信息 spec.containers.volumeMounts 指定哪些container需要用Volume KubernetesVolume支持非广泛贡献者其添加同存储支持反映Kubernetes社区跃程度
emptyDir 随Pod删除适用于临存储、灾难恢复、共享运行数据支持 RAM-backed filesystemhostPath 类似于Docker本Volume 用于访问些本资源(比本Docker)
gcePersistentDisk GCE disk - Google Cloud Engine 平台用
awsElasticBlockStore 类似于GCE disk 节点必须 AWS EC2实例 nfs - 支持网络文件系统
rbd - Rados Block Device - Ceph
secret 用通Kubernetes API 向Pod 传递敏信息使用 tmpfs (a RAM-backed filesystem)
persistentVolumeClaim - 抽象PV申请资源需关存储提供
glusterfs
iscsi
gitRepo
根据自需求选择合适存储类型反支持够总用款适合 :)
7)安全
些主要原则:
基础设施模块应该通API server交换数据、修改系统状态且API server访问端存储(etcd)
用户同角色:Developers/Project Admins/Administrators
允许Developers定义secrets 象并pod启关联相关容器
secret 例kubelet要pull 私镜像Kubernetes支持式:
通docker login .dockercfg 文件进行全局授权
通每namespace创建用户secret象创建Pod指定 imagePullSecrets 属性(统设置serviceAcouunt )进行授权
认证 (Authentication)
API server 支持证书、token、基本信息三种认证式
授权 (Authorization)
通apiserver安全端口authorization应用所http请求
AlwaysDeny、AlwaysAllow、ABAC三种模式其需求自实现Authorizer接口
8)监控
比较版本Kubernetes需要外接cadvisor主要功能node主机container metrics抓取较新版本cadvior功能集kubelet组件kubelet与docker交互同外提供监控服务
Kubernetes集群范围内监控主要由kubelet、heapsterstorage backend(influxdb)构建Heapster集群范围获取metrics事件数据pod式运行k8s平台单独运行standalone式
注意: heapster目前未1.0版本于规模集群监控比较便于较规模集群heapster目前cache式吃掉量内存要定获取整集群容器信息信息内存临存储问题再加heaspter要支持api获取临metricsheapsterpod式运行容易现OOM所目前建议关掉cache并standalone式独立k8s平台
Kubernetes入门:Pod、节点、容器和集群都是什么?
容器(Container)程序在Kubernetes上通过Linux容器执行,容器作为广泛应用的标准,提供了丰富的预构建映像资源。容器化为创建自足的Linux执行环境提供了便利,允许程序及其所有依赖项打包成文件并共享。任何地方都可以下载并部署容器,所需的配置很少。创建容器可以编程实现,从而形成强大的CI和CD管道。Pod Pod是Ku...
日本原生 ip - StormProxies
StormProxies是一家国内的优质海外HTTP代理服务提供商,以下是有关他们的日本原生IP的一些信息:* 代理类型:住宅代理* IP数量:超过5000万个* IP匿名度:高* 覆盖国家与地区:全球200+的国家与地区* 支持的协议:HTTP、HTTPS以及SOCKS5* 优势:具有超高并发、优质IP池、稳定高效、客服全天在线等优势需要注意的是,由于技术原因,StormProxies的IP可能不是完全位于日本,而是在其他地区模拟的日本IP。同时,由于政治和法律原因,一些IP可能会被封锁或限制使用。因此,在使用这些IP时,请确保了解当地的法律法规和政策。StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP纯净高匿;2、覆盖全球20...
Docker+ Kubernetes已成为云计算的主流(二十六)
什么是Kubernetes(k8s) Kubernetes(简称k8s)诞生于谷歌,是一个开源的,用于管理云平台中多个主机上的容器化的应用,k8s的目标是让部署容器化的应用简单并且高效,其提供了应用部署、规划、更新、维护的机制。 k8s主要有以下特点: 支持公有云,私有云,混合云,多重云(multi-cloud) 。可以将容器化的工作负载从本地开发...
虚拟化有哪些应用?
Process Container 是 Google 工程师眼中“容器”技术的雏形,用来对一组进程进行限制、记账、隔离资源(CPU、内存、磁盘 I/O、网络等)。这与前面提到的进程隔离技术的目标其实是一致的。由于技术更加成熟,Process Container 在 2006 年正式推出后,第二年就进入了 Linux 内核主干,并正式更名为 Cgroups,标志着 Linux ...
容器与虚拟机的区别
对于容器,它首先是一个相对独立的运行环境,在这一点有点类似于虚拟机,但是不像虚拟机那样彻底。在容器内,应该最小化其对外界的影响,比如不能在容器内把宿主机上的资源全部消耗,这就是资源控制。2.容器与虚拟机的区别 容器和虚拟机之间的主要区别在于虚拟化层的位置和操作系统资源的使用方式。1 ...
在容器领域,有了docker,为何还要有podman?
1. **cri-o (Kubernetes Container Runtime Interface)**:- cri-o是一个遵循Kubernetes CRI(Container Runtime Interface)规范的轻量级容器运行时,专为Kubernetes设计。它提供了与Docker类似的用户体验,但更专注于Kubernetes集成和资源效率,去除了不必要的守护进程。2. **containerd**:- containerd是...
CCE是做什么的
CCE是华为云 ‧ 云容器引擎产品CCE(Cloud Container Engine) 的简称,至于干什么的,就是当下特别火的以Kubernetes和Docker为基础,为企业应用提供快速打包、秒级部署、自动化运维等全生命周期管理能力。具体可以去官网了解下!
docker真的被kubernetes放弃了吗?
2014年,Docker正处于鼎盛期,Kubernetes刚诞生。为确保初期稳定,Kubernetes选择支持Docker。至2016年,Kubernetes发布1.0版,正式投入生产环境使用,表明其成熟化。此年,加入CNCF,成为首个托管项目,旨在利用基金会力量联合其他厂商,挑战Docker。同年,引入CRI(Container Runtime Interface)接口标准。CRI采用...