Kube

总结:k8s

独自空忆成欢 提交于 2020-08-14 02:09:54
一、介绍 Kubernetes 的作用是 用于管理容器化应用。 Kubernetes 的关键特性: 1、扩缩容 : 通过简单的命令、用户界面或基于CPU的使用情况,能够对应用进行扩容和缩容。 2、 自愈能力:当容器失败时,会对容器进行重启;当所部署的Node节点有问题时,会对容器进行重新部署和重新调度;当容器未通过监控检查时,会关闭此容器;直到容器正常运行时,才会对外提供服务。 3、 服务发现和负载均衡:开发者不需要使用额外的服务发现机制,就能够基于Kubernetes进行服务发现和负载均衡。 4、 自动发布和回滚:Kubernetes能够程序化的发布应用和相关的配置。如果发布有问题,Kubernetes将能够回归发生的变更。 5、 存储编排:自动挂接存储系统,这些存储系统可以来自于本地、公共云提供商(例如:GCP和AWS)、网络存储(例如:NFS、iSCSI、Gluster、Ceph、Cinder和Floker等)。 二、整体架构 Kubernetes属于主从分布式架构,主要由 Master Node和Worker Node 组成,以及包括客户端命令行工具kubectl和其它附加项。 Master Node:作为控制节点,对集群进行调度管理;Master Node由API Server、Scheduler、Cluster State Store和Controller-Manger

k8s入门详细介绍

筅森魡賤 提交于 2020-08-13 16:15:27
阅读目录 1.k8s集群的安装 1.1k8s集群架构: master节点:etcd,api-server,scheduler,controller-manager node节点:kubelet,kube-proxy etcd的作用:数据库 api-server:核心服务 controller-manager:控制器控制rc scheduler:创建新pod,选择合适的节点 kubelet:调用docker来创建容器 kube-proxy:对外提供用户访问,对内提供一个负载均衡器 1.6所有节点配置flannel网络 作用:跨节点容器间的通信 a.安装etcd b.安装配置flannel c.重启docker生效 1.7配置master为docker镜像私有仓库 a.速度快 b.保护隐私 2.什么是k8s,k8s有什么功能? 2.1k8s的核心功能 自愈:当pod挂了的时候会自动重启 弹性伸缩: 服务自动发现和负载均衡: 滚动升级和一键回滚: 密码和配置文件管理: 2.2k8s历史 2.3k8s的安装方式 yum 源码编译(极不推荐) 二进制 生产使用 kubeadm 生产使用 3.k8s常用资源 3.1创建pod资源 k8s最小资源单位 pod资源至少包含两个容器,基础容器pod+业务容器 3.2ReplictionController资源 保证指定数量的pod运行

调度

独自空忆成欢 提交于 2020-08-13 16:10:35
在Kubernetes中,调度(Scheduling),指的是为 Pod 找到一个合适的节点,并由该节点上的 kubelet 运行 Pod。 # 概述 每当集群中有新的 Pod 创建时,Kubernetes 调度器将负责为其找到最合适的节点去运行。调度器按照本文后面描述的原则执行执行调度工作。如果您想了解为什么 Pod 被分配到了具体的某一个节点,或者您打算自己实现一个定制化的调度器,本文可以帮助您更好的理解 Kubernetes 的调度工作。 # kube-scheduler kube-scheduler 是 Kubernetes 中默认的调度器,并且运行在 Master 组件中。kube-scheduler 虽然是默认的调度器,但是,在您需要的时候,您可以实现自己的调度器以替代 kube-scheduler。 对于每一个新创建的或者未调度的 Pod,kube-scheduler 为其选择一个合适的节点去运行。问题是,每一个 Pod 以及其中的每一个容器,都有不同的资源需求,在调度时,必须选择那些能够满足 Pod 的资源需求的节点才可以。 集群中能够满足某一个 Pod 的资源需求的节点,我们称其为 可选节点 (feasible node)。如果某一个 Pod 没有合适的 可选节点 ,则该 Pod 将一直停留在 Pending 状态,直到集群中出现了对于该 Pod 来说合适的

kubernetes云平台管理实战:namespace的使用(十六)

一个人想着一个人 提交于 2020-08-13 12:47:11
一、namespace的作用 Namespace(命名空间)是Kubernetes系统中的另一个非常重要的概念,Namespace在很多情况下用于实现多租户的资源隔离。阿里云 cms项目用到数据库、商城项目也需要数据库, 同一个namespace下面不允许出现两个service叫mysql 二、namespace管理命令 创建namespace root@master dashboard]# kubectl create namespace luoahong namespace "luoahong" created 查看namespace [root@master dashboard]# kubectl get namespace NAME STATUS AGE default Active 1d kube-system Active 1d luoahong Active 9s 删除namespace [root@master dashboard]# kubectl delete namespace luoahong namespace "luoahong" deleted 查看所有namespace [root@master ~]# kubectl get all --all-namespaces NAMESPACE NAME DESIRED CURRENT UP-TO-DATE

kubernetes云平台管理实战:k8s弹性伸缩(十八)

為{幸葍}努か 提交于 2020-08-13 09:39:52
一、什么是弹性伸缩 Horizontal Pod Autoscaler的操作对象是Replication Controller、ReplicaSet或Deployment对应的Pod,根据观察到的CPU使用量与用户的阈值进行比对,做出是否需要增减实例数量的决策。controller目前使用heapSter来检测CPU使用量,检测周期默认是30秒 二、创建hpa nginx-rc.yaml [root@master hpa]# cat nginx-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: myweb1 spec: replicas: 2 selector: app: myweb1 template: metadata: labels: app: myweb1 spec: containers: - name: myweb1 image: 192.168.118.18:5000/nginx:1.13 ports: - containerPort: 80 resources: limits: cpu: 100m memory: 50Mi requests: cpu: 100m memory: 50Mi 创建检查 [root@master hpa]# kubectl create -f nginx

kubernetes云平台管理实战:部署heapster监控(十七)

纵然是瞬间 提交于 2020-08-13 08:13:40
一、实验准备 1、文件结构与组成 [root@master heapster-influxdb]# ll total 20 -rw-r--r-- 1 root root 414 May 13 16:35 grafana-service.yaml -rw-r--r-- 1 root root 694 May 21 12:14 heapster-controller.yaml -rw-r--r-- 1 root root 249 May 13 16:36 heapster-service.yaml -rw-r--r-- 1 root root 1627 May 13 17:19 influxdb-grafana-controller.yaml -rw-r--r-- 1 root root 259 May 13 16:37 influxdb-service.yaml 2、具体内容 grafana-service.yaml [root@master heapster-influxdb]# cat grafana-service.yaml apiVersion: v1 kind: Service metadata: labels: kubernetes.io/cluster-service: 'true' kubernetes.io/name: monitoring-grafana name

带着问题学 Kubernetes 架构!

核能气质少年 提交于 2020-08-13 04:56:30
作者:jasonGeng88 www.github.com/jasonGeng88/blog 打开这篇文章的同学,想必对 docker 都不会陌生。docker 是一种虚拟容器技术,它上手比较简单,只需在宿主机上起一个 docker engine,然后就能愉快的玩耍了,如:拉镜像、起容器、挂载数据、映射端口等等。 相对于 Kubernetes( K8S )的上手,可谓简单很多。那么 K8S 是什么,又为什么上手难度大? K8S 是一个基于容器技术的分布式集群管理系统,是谷歌几十年来大规模应用容器技术的经验积累和升华的一个重要成果。 所以为了能够支持大规模的集群管理,它承载了很多的组件,而且分布式本身的复杂度就很高。又因为 K8S 是谷歌出品的,依赖了很多谷歌自己的镜像,所以对于国内的同学环境搭建的难度又增加了一层。 下面,我们带着问题,一步步来看 K8S 中到底有哪些东西? 首先,既然是个分布式系统,那势必有多个 Node 节点(物理主机或虚拟机),它们共同组成一个分布式集群,并且这些节点中会有一个 Master 节点,由它来统一管理 Node 节点。 问题一:主节点和工作节点是如何通信的呢? 首先,Master 节点启动时,会运行一个 kube-apiserver 进程,它提供了集群管理的 API 接口,是集群内各个功能模块之间数据交互和通信的中心枢纽

traefik Ingress https配置

故事扮演 提交于 2020-08-13 04:02:18
一、概述 1、理解Ingress 简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上。Ingress相当于nginx、apache等负载均衡方向代理服务器,其中还包括规则定义,即URL的路由信息,路由信息得的刷新由 Ingress controller 来提供。 2、理解Ingress Controller Ingress Controller 实质上可以理解为是个监视器,Ingress Controller 通过不断地跟 kubernetes API 打交道,实时的感知后端 service、pod 等变化,比如新增和减少 pod,service 增加与减少等;当得到这些变化信息后,Ingress Controller 再结合下文的 Ingress 生成配置,然后更新反向代理负载均衡器,并刷新其配置,达到服务发现的作用。 3、RBAC 在开始之前,需要先了解一下什么是RBAC。RBAC(基于角色的访问控制)使用 rbac.authorization.k8s.io API 组来实现权限控制,RBAC 允许管理员通过 Kubernetes API 动态的配置权限策略。在 1.6 版本中 RBAC 还处于 Beat 阶段,如果想要开启 RBAC 授权模式需要在 apiserver 组件中指定 -

dubbo-go K8s 注册中心的设计方案与实现

≡放荡痞女 提交于 2020-08-13 00:28:34
Dubbo-go k8s注册中心设计方案与实现 随着云原生的推广,越来越多的公司或组织将服务容器化,并将容器化后的服务部署在k8s集群中。 今天这篇文章将会介绍dubbo-go将k8s作为服务注册中心的方案设计,以及具体实现。到目前为止该方案的实现已经被合并到dubbo-go的master分支。具体实现为 关于Kubernetes的PullRequest 。 k8s管理资源的哲学 k8s作为容器集群化管理方案可以将管理资源的维度可主观的分为服务实例管理和服务接入管理。 服务实例管理,主要体现方式为Pod设计模式加控制器模式。控制器保证具有特定标签(Label)的Pod保持在恒定的数量(多删,少补)。 服务接入管理,主要为Service,该Service默认为具有特定标签(Label)的一批Pod提供一个VIP(ClusterIP)作为服务的接入点,默认会按照round-robin的负载均衡策略将请求转发到真正提供服务的Pod。并且CoreDNS为该Service提供集群内唯一的域名。 k8s服务发现模型 为了明确k8s在服务接入管理提供的解决方案,我们以kube-apiserver 提供的API(HTTPS)服务为例。k8s集群为该服务分配了一个集群内有效的ClusterIP,并通过CoreDNS为其分配了唯一的域名 kubernetes

通过kubeadm安装kubernetes

不羁岁月 提交于 2020-08-12 23:59:56
本文主要讲解在centos7下kubentes安装 1 单机安装 1.1 通过minikube安装(官方minikube) 本小节主要讲解通过minikube工具安装一个本地单机kubenetes 1.1.1 minikube 安装 如果需要在虚拟机里边安装的话,需要首先安装虚拟机软件、如 VirtualBox KVM 等, 本文直接安装在计算机中,所以不依赖虚拟机,直接安装的话有些minikube的命令就不支持了,比如minikube docker-env等命令。 minikube安装很简单,只有一个可执行文件 执行如下命令 [root@k8s-1 ~]# curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 [root@k8s-1 ~]# chmod +x minikube [root@k8s-1 ~]# sudo cp minikube /usr/local/bin [root@k8s-1 ~]# rm minikube 查看是否安装成功 [root@k8s-1 ~]# minikube version minikube version: v1.0.1 minikube 常见命令: minikube version,查看minikube的版本