Kube

Kubernetes --- 详细介绍和架构详解

别等时光非礼了梦想. 提交于 2021-01-03 16:34:26
Kubernetes是一个跨主机集群的开源的容器调度平台,它可以自动化应用容器的部署,扩展和操作,提供以容器为中心的基础架构 目录 一. Kubernetes用途 二. Kubernetes特点 三. 介绍容器技术 四. Kubernetes能做什么? 五. 使用Kubernetes的好处 六. 了解架构 一. Kubernetes用途 Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署,自动扩缩容,维护等功能 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 二. Kubernetes特点 可移植 : 支持公有云,私有云,混合云,多重云 可扩展 : 模块化,插件化,可挂载,可组合,支持各种形式的扩展 自动化 : 自动部署,自动重启,自动复制,自动伸缩/扩展,通过声明式语法提供了强大的自修复能力 Kubernetes是Google2014年创建管理的,是Google10多年大规模容器管理技术Borg的开源版本 三. 介绍容器技术 Kubernetes使用Linux容器技术来提供应用的隔离,如Docker或者rkt 容器允许你在同一台机器上运行多个服务,不仅提供不同的环境给每个服务,而且将它们互相隔离,容器类似于虚拟机,但开销小很多 一个容器仅仅是运行在宿主机上被隔离的单个进程,仅消耗应用容器消耗的资源

Kubernetes系列之监控Metres-server实战篇

核能气质少年 提交于 2021-01-03 14:22:03
本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复【K8s实战】获取 介绍 从 Kubernetes 1.8 开始,Kubernetes 通过 Metrics API 获取资源使用指标,例如容器 CPU 和内存使用情况。这些度量指标可以由用户直接访问,例如通过使用kubectl top 命令,或者使用集群中的控制器。 Metrics API: 通过 Metrics API,您可以获得 node 或 pod 当前的资源使用情况(但是不存储)。 大致是说它符合 kubernetes 的监控架构设计,受 heapster 项目启发,并且比 heapster 优势在于: 访问不需要 apiserver 的代理机制,提供认证和授权等; 很多集群内组件依赖它(HPA,scheduler,kubectl top),因此它应该在集群中默认运行; 下载编排 [root@master-01 opt]# git clone https://github.com/kubernetes-incubator/metrics-server[root@master-01 opt]# cd metrics-server/deploy/1.8+/ 创建metrics-server证书 创建签名请求 [root@master-01 1.8+]# cd /etc/kubernetes

Docker部署Rancher(无坑)

余生长醉 提交于 2021-01-02 08:48:58
操作前必看: 注:如想使用ranhcer进行管理,前提需要你的k8s集群在没组建起来的时候进行,如果k8s已经搭建rancher导入集群功能将无法使用,需要在搭建好master和node之后先将rancher在master启动好后将curl --insecure -sfL ** 这一条也就是第三行的导入命令,在master节点执行好后才可以将node执行kubeadm join这条加入集群的命令 注:如果部署k8s之前没更改主机名,当k8s部署后就不要更改了,一旦更改会导致你的节点直接NotReady,最好是在部署之前先将主机名改好 注:如果出现将master 加入ranche后提示如下内容: 警告:组件controller-manager不健康 警告:组件scheduler不健康 可以执行如下操作: master执行查看集群状态 kubelet get cs 检查端口未监听 ss -ant| grep 10251 ss -ant| grep 10252 pod组件运行正常 kubelet get pods --all-namespaces 检查kube-scheduler和kube-controller-manager组件配置是否禁用了非安全端口 vim /etc/kubernetes/manifests/kube-scheduler.yaml vim /etc

本地Windows下与远程Kubernetes进行开发联调

若如初见. 提交于 2020-12-31 14:22:36
第一步 配置kubectl 本地安装 kubectl ,并配置路径到环境变量中。 找到服务器上的 apiserver.crt 文件,一般在 /etc/kubernetes/pki 中,执行 openssl x509 -in apiserver.crt -noout -text | grep DNS 命令. 在本机hosts中添加添加上图中的DNS值任意一条域名(通常为kubernetes),ip地址为k8s服务器外网IP。 下载服务器端的 ~/.kube/config 到本地,配置 kubectl 的 config , config 文件通常在 C:\Users\{用户}\.kube\ 下,将 clusters:clusters:clusters: 的地址改为hosts中配置的域名。 第二步 配置KT-Connect并使用IDEA进行开发联调 下载KT-Connect,本地安装并配置路径到环境变量中。 IDEA 下载并安装最新版本的JVM Inject插件 在IDEA打开的项目的目录下使用ktctl启动本地到集群的socks5代理服务, ktctl connect --method=socks5 --dump2hosts 在IDEA刷新目录,直到可以看到.jvmrc文件,就可以启动项目,VM Inject插件会在Java程序启动时自动读取.jvmrc文件,并追加到程序的启动参数中

K8S从入门到放弃系列-(4)kubernetes集群之kubectl命令行工具部署

末鹿安然 提交于 2020-12-31 06:05:17
摘要:随着版本的不断迭代,k8s为了集群安全,集群中趋向采用TLS+RBAC的安全配置方式,所以我们在部署过程中,所有组件都需要证书,并启用RBAC认证。 我们这里采用二进制安装,下载解压后,把对应组件二进制文件copy到指定节点 master节点组件:kube-apiserver、etcd、kube-controller-manager、kube-scheduler、kubectl node节点组件:kubelet、kube-proxy、docker、coredns、calico 部署master组件 1)下载kubernetes二进制安装包 解压下载的压缩包,并把对应的二进制文件分发至对应master或者node节点的指定位置 [root@k8s-master01 ~]# cd k8s/ [root@k8s -master01 k8s]# wget https: // storage.googleapis.com/kubernetes-release/release/v1.14.1/kubernetes-server-linux-amd64.tar.gz [root@k8s-master01 k8s]# tar -xf kubernetes-server-linux-amd64. tar .gz ##master二进制命令文件传输 [root@k8s -master01 k8s

kubernetes-整体概述和架构详解

痞子三分冷 提交于 2020-12-27 00:26:07
一、Kubernetes是什么 Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。通过Kubernetes能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。Kubernetes积累了作为Google生产环境运行工作负载15年的经验,并吸收了来自于社区的最佳想法和实践。Kubernetes经过这几年的快速发展,形成了一个大的生态环境,Google在2014年将Kubernetes作为开源项目。Kubernetes的关键特性包括: 自动化装箱 :在不牺牲可用性的条件下,基于容器对资源的要求和约束自动部署容器。同时,为了提高利用率和节省更多资源,将关键和最佳工作量结合在一起。 自愈能力 :当容器失败时,会对容器进行重启;当所部署的Node节点有问题时,会对容器进行重新部署和重新调度;当容器未通过监控检查时,会关闭此容器;直到容器正常运行时,才会对外提供服务。 水平扩容 :通过简单的命令、用户界面或基于CPU的使用情况,能够对应用进行扩容和缩容。 服务发现和负载均衡 :开发者不需要使用额外的服务发现机制,就能够基于Kubernetes进行服务发现和负载均衡。 自动发布和回滚 :Kubernetes能够程序化的发布应用和相关的配置。如果发布有问题,Kubernetes将能够回归发生的变更。

k8s全方位监控-prometheus部署

旧巷老猫 提交于 2020-12-25 09:17:06
1、k8s 监控资源对象 2、 prometheus简单介绍。 https://github.com/prometheus •多维数据模型:由度量名称和键值对标识的时间序列数据 •PromSQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询 •不依赖分布式存储,单个服务器节点可直接工作 •基于HTTP的pull方式采集时间序列数据 •推送时间序列数据通过PushGateway组件支持 •通过服务发现或静态配置发现目标 •多种图形模式及仪表盘支持(grafana) 组件介绍: 3、prometheus 部署。 [root@VM_0_48_centos prometheus]# cat prometheus- statefulset.yaml apiVersion: apps / v1 kind: StatefulSet metadata: name: prometheus namespace : kube- system labels: k8s - app: prometheus kubernetes.io /cluster-service: " true " addonmanager.kubernetes.io / mode: Reconcile version: v2. 2.1 spec: serviceName: " prometheus " replicas: 1

Kubernetes-整体概述和架构

我是研究僧i 提交于 2020-12-25 07:23:41
↑点击上方 “ kubernetes中文社区 ” 关注我们 1、Kubernetes是什么 Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务。通过Kubernetes能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。Kubernetes积累了作为Google生产环境运行工作负载15年的经验,并吸收了来自于社区的最佳想法和实践。Kubernetes经过这几年的快速发展,形成了一个大的生态环境,Google在2014年将Kubernetes作为开源项目。Kubernetes的关键特性包括: 自动化装箱 :在不牺牲可用性的条件下,基于容器对资源的要求和约束自动部署容器。同时,为了提高利用率和节省更多资源,将关键和最佳工作量结合在一起。 自愈能力: 当容器失败时,会对容器进行重启;当所部署的Node节点有问题时,会对容器进行重新部署和重新调度;当容器未通过监控检查时,会关闭此容器;直到容器正常运行时,才会对外提供服务。 水平扩容 :通过简单的命令、用户界面或基于CPU的使用情况,能够对应用进行扩容和缩容。 服务发现和负载均衡 :开发者不需要使用额外的服务发现机制,就能够基于Kubernetes进行服务发现和负载均衡。 自动发布和回滚 :Kubernetes能够程序化的发布应用和相关的配置

Prometheus 监控K8S 资源状态对象

浪子不回头ぞ 提交于 2020-12-25 07:22:01
Prometheus 监控K8S 资源状态对象 官方文档:https://github.com/kubernetes/kube-state-metrics kube-state-metrics是一个简单的服务,它监听Kubernetes API服务器并生成有关对象状态的指标。它不关注单个Kubernetes组件的运行状况,而是关注内部各种对象的运行状况,例如部署,节点和容器。 采集了k8s中各种资源对象的状态信息: kube-state- metrics kube_daemonset_ * kube_deployment_ * kube_job_ * kube_namespace_ * kube_node_ * kube_persistentvolumeclaim_ * kube_pod_container_ * kube_pod_ * kube_replicaset_ * kube_service_ * kube_statefulset_ * View Code 配置文件 下列是已经修改好的配置文件 # 主程序 kube-state-metrics-deployment.yaml apiVersion: apps/ v1 kind: Deployment metadata: name: kube -state- metrics namespace: kube - system

prometheus-常用资源对象

有些话、适合烂在心里 提交于 2020-12-25 05:19:41
监控 Kubernetes 常用资源对象 Prometheus 来自动发现 Kubernetes 集群的节点,用到了 Prometheus 针对 Kubernetes 的服务发现机制 kubernetes_sd_configs 的使用,这节课我们来和大家一起了解下怎样在 Prometheus 中来自动监控 Kubernetes 中的一些常用资源对象。 前面我们和大家介绍过了在 Prometheus 中用静态的方式来监控 Kubernetes 集群中的普通应用,但是如果针对集群中众多的资源对象都采用静态的方式来进行配置的话显然是不现实的,所以同样我们需要使用到 Prometheus 提供的其他类型的服务发现机制。 容器监控 说到容器监控我们自然会想到 cAdvisor ,我们前面也说过 cAdvisor 已经内置在了 kubelet 组件之中,所以我们不需要单独去安装, cAdvisor 的数据路径为 /api/v1/nodes/ <node >/proxy/metrics ,同样我们这里使用 node 的服务发现模式,因为每一个节点下面都有 kubelet,自然都有 cAdvisor 采集到的数据指标,配置如下: - job_name : 'kubernetes-cadvisor' kubernetes_sd_configs : - role : node scheme :