Kube

kubernetes调度之资源配额

六月ゝ 毕业季﹏ 提交于 2021-01-13 11:31:23
系列目录 当多个用户或者开发团队共享一个有固定节点的的kubernetes集群时,一个团队或者一个用户使用的资源超过他应当使用的资源是需要关注的问题,资源配额是管理员用来解决这个问题的一个工具. 资源配额,通过 ResourceQuota 定义,提供了对某一名称空间使用资源的总体约束.它即可以限制这个名称空间下有多少个对象可以被创建,也可以限制对计算机资源使用量的限制(前面说到过,计算机资源包括cpu,内存,磁盘空间等资源) 资源配额通过以下类似方式工作: 不同的团队在不同的名称空间下工作.当前kubernetes并没有强制这样做,完全是自愿的,但是kubernetes团队计划通过acl授权来达到强制这样做. 管理员对每一个名称空间创建一个 ResourceQuota(资源配额) 用户在一个名称空间下创建资源(例如pod,service等),配额系统跟踪资源使用量来保证资源的使用不超过 ResourceQuota 定义的量. 如果对一个资源的创建或者更新违反了资源配额约束,则请求会返回失败,失败的http状态码是 403 FORBIDDEN 并且有一条消息来解释哪个约束被违反. 如果一个名称空间下的计算机资源配额,比如CPU和内存被启用,则用户必须指定相应的资源申请或者限制的值,否则配额系统可能会阻止pod的创建. 资源配额在某一名称空间下创建策略示例: 在一个有32G内存

k8s集群构建

倾然丶 夕夏残阳落幕 提交于 2021-01-13 06:47:39
1.什么是kubernetes?  Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。 2.kubernetes核心组件说明: Kubernetes 集群中主要存在两种类型的节点,分别是 master 节点,以及 minion 节点。 Minion 节点是实际运行 Docker 容器的节点,负责和节点上运行的 Docker 进行交互,并且提供了代理功能。 Master 节点负责对外提供一系列管理集群的 API 接口,并且通过和 Minion 节点交互来实现对集群的操作管理。 apiserver:用户和 kubernetes 集群交互的入口,封装了核心对象的增删改查操作,提供了 RESTFul 风格的 API 接口,通过 etcd 来实现持久化并维护对象的一致性。 scheduler:负责集群资源的调度和管理,例如当有 pod 异常退出需要重新分配机器时,scheduler 通过一定的调度算法从而找到最合适的节点。 controller-manager:主要是用于保证 replicationController 定义的复制数量和实际运行的 pod 数量一致,另外还保证了从 service 到 pod

Knative 快捷操作命令 Kn 介绍

帅比萌擦擦* 提交于 2021-01-08 13:55:52
简介: kn 是 Knative 命令行操作客户端。 通过 kn 可以方便的操作Knative 相关的资源。 安装 Kn 可以通过官方获取对应的 Kn 二进制 • macOS • Linux • Windows kn 会与 kubectl 使用同样的config 文件,默认使用 $HOME/.kube/config 服务管理 使用 Kn 命令可以执行: list, create, delete, apply, 和 update 操作Knative services. 创建服务 使用 create 命令: kn service create 示例: $ kn service create helloworld-go --env TARGET=knative --image registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 yuncs.com/knative-sample/helloworld-go:73fbdd56 Creating service 'helloworld-go' in namespace 'default': 0.116s The Route is still working to reflect the latest desired specification. 0

k8s集群部署

梦想的初衷 提交于 2021-01-08 06:32:31
1. 部署环境 k8s集群部署以四台机器做实验,一台部署节点,三台集群节点。在部署节点上通过ansible将关于k8s相关部署文件发送给集群节点进行部署。 四台主机:node、node1、node2、node3;   a) 部署节点:node;   b) master节点:node1;   c) etcd节点:node1、node2、node3;   d) 计算(node)节点:node1、node2、node3。 版本组件   kubernetes v1.9.7   etcd v3.3.4   docker 18.03.0-ce   calico/node:v3.0.6   calico/cni:v2.0.5   calico/kube-controllers:v2.0.4   centos 7.3+ 2. 上传镜像至部署节点,解压 [root@node opt]# ls kubernetes.tar.gz rh [root@node opt]# tar zxf kubernetes.tar.gz 3. 域名解析和免密钥,各机器均做 [root@node opt]# cat /etc/ hosts 127.0 . 0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1

关于k8s service

北城余情 提交于 2021-01-07 09:06:38
1、service类型 service主要类型包括clusterIP(headless)、nodeport、LB。 clusterip:集群内部可以访问的固定虚机IP地址; headless:是不分配cluster IP地址的cluster服务类型,可通过DNS访问cluster,也可通过指定podname.clustername.<namespace name>.svc.cluster.local,访问指定的pod; nodeport:将service的port射到节点的port,外部可通过node ip + port的方式直接访问service; LB:负载均衡器后端服务器为集群各节点IP+nodePort; 2、服务发现 定义服务的时候,通过service的selector指定pods,并根据pods的IP创建相应的endpoints,endpoints controller监听watch service以及pod的变化,维护endpoint的详细;kube-proxy根据service和endpoint来维护本地的路由规则,当endpoint发生变化,即service及其关联的pod发生变化,kube-proxy都会在每个节点上更新iptables; 3、kube-proxy实现模式 当前支持的代理模式主要是ipvs、iptables; iptables

Kubernetes v1.16 重磅发布 | 新版本亮点 & 紧急升级说明

旧时模样 提交于 2021-01-07 04:29:26
来源:GitHub 翻译:bot(才云) 技术校对:Lichuan(才云) 美国时间 9 月 18 日,Kubernetes 迎来了 2019 年的第三个新版本 1.16 。K8sMeetup 中国社区第一时间整理了 Kubernetes v1.16 的亮点内容,为大家详细介绍此版本的主要功能。 根据 Release Note 介绍, Kubernetes v1.16 由 31 个增强功能组成: 8 个进入稳定,8 个进入 Beta,15 个进入 Alpha 。 新版本四大主题 新版本主要围绕以下主题: Custom resources :CRD 是对 Kubernetes 的扩展,用以服务于新的资源类型,自 1.7 版本以来,CRD 已经在 Beta 版中可用。 在 1.16 版本中,CRD 正式步入通用可用性(GA) 。 Admission webhook :Admission webhooks 作为 Kubernetes 扩展机制被广泛使用,并且自 1.9 版本以来已经在 Beta 版中可用。 在 1.16 版本中,Admission webhook 也正式步入通用可用性(GA) 。 Overhauled metrics : Kubernetes 广泛使用一个全局 metrics registry 来注册要公开的 metrics 。通过实现 metrics registry

Docker Kubernetes 环境搭建

久未见 提交于 2021-01-06 19:00:27
Docker Kubernetes 环境搭建 节点规划 版本 系统 :Centos 7.4 x64 Docker版本: 18.09.0 Kubernetes版本: v1.8 etcd存储版本 :etcd-3.2.22 部署 管理节点 :192.168.1.79 安装插件:etcd 安装插件:kube-apiserver 安装插件:kube-controller-manager 安装插件:kube-scheduler 工作节点 :192.168.1.78 安装插件:kubelet 安装插件:kube-proxy 安装插件:docker 工作节点 :192.168.1.77 安装插件:kubelet 安装插件:kube-proxy 安装插件:docker Kubernetes 部署方式 1、kubeadm工具快捷安装kubernetes集群。 kubeadm工具安装会屏蔽很多细节。 2、通过kubernetes二进制包安装。 kubernetes二进制包: https://github.com/kubernetes/kubernetes kubernetes是基于GO语言开发的需要安装Go语言环境。 注: 这里我采用第2种,由于安装环境繁琐,将事先编译好的Kubernetes工具包来进行环境部署。 kubernetes工具包:https://pan.baidu.com/s

阿里云环境部署k8s集群

元气小坏坏 提交于 2021-01-06 17:28:13
网上讲述如何部署k8s集群的文章很多,特别是k8s中文社区里面,每个平台的部署方式都有详细说明。但就是看了中文社区的指导,发现一路是坑,第一个源访问的时候就404 NotFound, 更别说那生涩的翻译和版本匹配问题。 如此一来还不如自己写一个。 1. 开虚机 系统环境CentOS 7.2 . 这方面不再赘述 2. 设置/etc/hosts 简单来说就是把master和minion主机都用域名在hosts文件中记录一下。 3. 集群主机都安装kubernetes和etcd 直接yum install . 安装kubernetes 时会顺带把docker等都安装上。 此文章编写时, 阿里云 的kubernetes版本为1.5.2. 这里还需要注意:应该在etcdctl中配置flannel,否则flannel无法正常启动。 [root@k8s-master home]# etcdctl set /flannel/network/config '{ "Network": "172.16.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }' 4. 配置apiserver 按照中文社区的指导配置(但最终并没有使用该配置,看下去就知道) 修改/etc/kubernetes/apiserver 修改/etc/kubernetes

OpenYurt 入门

≡放荡痞女 提交于 2021-01-06 16:55:13
作者 | 唐炳昌 来源| 阿里巴巴云原生公众号 随着边缘计算的快速发展,越来越多的数据需要到网络的边缘侧进行存储、处理和分析,边缘的设备和应用呈爆发式增长。如何高效的管理边缘侧的资源和应用是业界面临的一个主要问题。当前,采用云原生的方法,将云计算的能力下沉到边缘并在云端做统一调度、管控的云边端一体化架构得到了业界的广泛认可。 2020 年 5 月,阿里巴巴开源首个 Kubernetes 无侵入的边缘计算云原生项目 OpenYurt ,并于同年 9 月份进入 CNCF SandBox。OpenYurt 针对边缘场景中网络不稳定、云边运维困难等问题,对原生 Kubernetes 无侵入地增强,重点提供了边缘节点自治、云边运维通道、边缘单元化的能力。 如图 1 所示,本文通过在云端部署 Kubernetes 集群的控制面,并将树莓派接入集群来搭建云管边场景。基于这个环境演示 OpenYurt 的核心能力,带大家快速上手 OpenYurt。 图 1 原生 Kubernetes 集群 环境准备 1. 基础环境介绍 在云端,购买 ENS 节点(ENS 节点具有公网 IP,方便通过公网对外暴露服务)来部署原生 K8s 集群的管控组件。其中系统采用 ubuntu18.04、hostname 为 master-node、docker 版本为 19.03.5。 在边缘,如图 2 所示,将树莓派 4

kubernetes安装(基于CentOS7,kubeadm)

岁酱吖の 提交于 2021-01-04 04:01:25
kubeadm可以帮助你快速部署一套kubernetes集群。kubeadm设计目的为新用户开始尝试kubernetes提供一种简单的方法。不适用于生产环境。 1、安装要求及目标 禁止swap分区(kubernetes不支持) 可以访问外网 集群机器之间网络互通 所以节点上安装Docker和kubeadm 部署Kubernetes Master 部署网络管理插件 部署Kubernetes Node,将节点加入Kubenetes集群中 部署Dashboard Web页面,可视化查看Kubernetes资源 关闭防火墙: systemctl stop firewalld && systemctl disable firewalld 关闭selinux: sed -i ' s/enforcing/disabled/ ' /etc/selinux/ config setenforce 0    # 使设置生效 getenforce     # 查看 关闭swap: swapoff - a # 临时关闭 sed -i 's/.\\*swap.\\*/#&/' /etc /fstab # 永久关闭 添加主机名与IP对应关系: vim /etc/hosts 192.168 . 174.138 k8s- master 192.168 . 174.139 k8s- node1 192.168 .