Kubernetes
文章平均质量分 84
Kubernetes 学习 笔记
hNicholas
这个作者很懒,什么都没留下…
展开
-
cgroup driver设置为cgroupfs和systemd的区别
cgroup driver设置为cgroupfs和systemd的区别1、在说Cgroupfs与Systemd之间的区别之前,我们需要先了解一下什么是Cgroup?Cgroup,全称Control Group(控制组),是Linux系统内核提供的一个特性(Linux 2.6.24内核开始将Cgroup加入主线),主要用于限制和隔离一组进程对系统资源的使用,也就是做资源QoS。可控制的资源主要包括CPU、内存、block I/O、网络带宽等等。2、什么是Cgroupfs?Cgroup提供了一个转载 2021-12-17 11:07:32 · 863 阅读 · 0 评论 -
Kuberneters CRD资源详解
1、K8S CRD简明及简用:CustomResourceDefinition简介:在 Kubernetes 中一切都可视为资源,Kubernetes 1.7 之后增加了对 CRD 自定义资源二次开发能力来扩展 Kubernetes API,通过 CRD 我们可以向 Kubernetes API 中增加新资源类型,而不需要修改 Kubernetes 源码来创建自定义的 API server,该功能大大提高了 Kubernetes 的扩展能力。当你创建一个新的CustomResourceDefinit转载 2021-12-06 14:41:24 · 536 阅读 · 0 评论 -
Envoy Gateway 云原生时代的流量入口
流量入口代理作为互联网系统的门户组件,具备众多选型:从老牌代理 HAProxy、Nginx,到微服务 API 网关 Kong、Zuul,再到容器化 Ingress 规范与实现,不同选型间功能、性能、可扩展性、适用场景参差不齐。当云原生时代大浪袭来,Envoy 这一 CNCF 毕业数据面组件为更多人所知。那么,优秀“毕业生”Envoy 能否成为云原生时代下流量入口标准组件?背景 —— 流量入口的众多选型与场景在互联网体系下,凡是需要对外暴露的系统几乎都需要网络代理:较早出现的 HAProxy、Ngin转载 2021-12-06 10:18:58 · 402 阅读 · 0 评论 -
etcd mvcc: database space exceeded 异常处理
异常原因经查,这个异常的message是etcd服务端返回的,用来提示应用etcd服务端空间不足了。在etcd的官方文档常见问题(FAQ)版块针对这个场景有明确的说明,如:Q、:“ mvcc:database space exceeded”是什么意思,我该如何解决?A、:etcd中的多版本并发控制数据模型保留了密钥空间的确切历史记录。如果不定期压缩此历史记录(例如,通过设置--auto-compaction),etcd最终将耗尽其存储空间。如果etcd的存储空间不足,则会发出空间配额警报,以保.转载 2021-07-29 13:57:54 · 2386 阅读 · 0 评论 -
【转】万级K8s集群背后etcd稳定性及性能优化实践
万级K8s集群背后etcd稳定性及性能优化实践背景与挑战随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群、EKS弹性集群、edge边缘计算集群、mesh服务网格、serverless knative)也越来越丰富。各类容器服务类型背后的核心都是K8s,K8s核心的存储etcd又统一由我们基于K8s构建的etcd平台进行管理。基于它我们目前管理了千级etcd集群,背后支撑了万级K8s集群。在万级K8s转载 2021-04-19 20:35:13 · 552 阅读 · 0 评论 -
Openshift与Kubernetes的区别
OpenShift被其供应商——Red Hat称为“ Enterprise Kubernetes”。在本文中,我将描述OpenShift和Kubernetes之间的真正差异。由于Red Hat倾向于将其描述为PaaS,因此常常令人困惑,有时掩盖了Kubernetes是OpenShift不可或缺的一部分,并围绕它构建了更多功能这一事实。让我们深入研究一下两者之间的真正区别。1. OpenShift产品与Kubernetes项目Kubernetes是一个开源的项目(甚至框架),而OpenShi...转载 2020-12-31 10:47:35 · 967 阅读 · 1 评论 -
Linux bridge hairpin mode
hairpin中文翻译为发卡。bridge不允许包从收到包的端口发出,比如bridge从一个端口收到一个广播报文后,会将其广播到所有其他端口。bridge的某个端口打开hairpin mode后允许从这个端口收到的包仍然从这个端口发出。这个特性用于NAT场景下,比如docker的nat网络,一个容器访问其自身映射到主机的端口时,包到达bridge设备后走到ip协议栈,经过iptables规则的dnat转换后发现又需要从bridge的收包端口发出,需要开启端口的hairpin mode。Seehttps:/.转载 2020-11-19 10:22:02 · 2886 阅读 · 0 评论 -
dumb-init:一个Docker容器初始化系统
容器化环境中,往往直接运行应用程序,而缺少初始化系统(如systemd、sysvinit等)。这可能需要应用程序来处理系统信号,接管子进程,进而导致容器无法停止、产生僵尸进程等问题。dumb-init旨在模拟初始化系统功能,避免上述问题的发生。容器化环境中,往往直接运行应用程序,而缺少初始化系统(如systemd、sysvinit等)。这可能需要应用程序来处理系统信号,接管子进程,进而导致容器无法停止、产生僵尸进程等问题。Yelp开发的dumb-init,旨在模拟初始化系统功能,避免上述问题的发生。转载 2020-07-21 15:34:29 · 2636 阅读 · 0 评论 -
etcd构建高可用集群的三种形式
etcd构建自身高可用集群主要有三种形式:静态发现: 预先已知etcd集群中有哪些节点,在启动时通过--initial-cluster参数直接指定好etcd的各个节点地址。 etcd动态发现: 通过已有的etcd集群作为数据交互点,然后在扩展新的集群时实现通过已有集群进行服务发现的机制。比如官方提供的:discovery.etcd.io DNS动态发现: 通过DNS查询方式获取其他节点地址信息。静态发现:这里将部署一个3节点的集群, 以下为3台主机信息,节点名称 地址 et.转载 2020-06-01 09:16:11 · 4233 阅读 · 1 评论 -
如何实现K8s Pod自定义指标弹性伸缩
弹性伸缩介绍自动弹性伸缩(AutoScaling),是Kubernetes的一大功能和亮点。在OpenStack IaaS云计算中也有类似的服务,即Senlin。即基于资源使用情况自动弹性缩容和扩容工作负载。Kubernetes的自动弹性伸缩有两个维度:Cluster Autoscaler:处理K8s集群Node节点伸缩,该功能依赖于IaaS云提供商云主机服务和资源监控服务。 Horiz...转载 2020-03-24 13:42:51 · 812 阅读 · 0 评论 -
Dockerfile RUN,CMD,ENTRYPOINT命令区别
Dockerfile中RUN,CMD和ENTRYPOINT都能够用于执行命令,下面是三者的主要用途:RUN命令执行命令并创建新的镜像层,通常用于安装软件包 CMD命令设置容器启动后默认执行的命令及其参数,但CMD设置的命令能够被docker run命令后面的命令行参数替换 ENTRYPOINT配置容器启动时的执行命令(不会被忽略,一定会被执行,即使运行docker run时指定了其他命令...转载 2020-03-12 14:31:50 · 606 阅读 · 0 评论 -
Kubernetes Helm 介绍
Helm 是 Kubernetes 的软件包管理工具。本文需要读者对 Docker、Kubernetes 等相关知识有一定的了解。 本文将介绍 Helm 中的相关概念和基本工作原理,并通过一些简单的示例来演示如何使用Helm来安装、升级、回滚一个 Kubernetes 应用。Helm 是什么??Helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的ap...转载 2020-03-04 15:27:11 · 1086 阅读 · 0 评论 -
kubernetes Taint 和 Toleration
节点亲和性(详见这里),是pod的一种属性(偏好或硬性要求),它使pod被吸引到一类特定的节点。Taint 则相反,它使节点能够排斥一类特定的 pod。Taint 和 toleration 相互配合,可以用来避免 pod 被分配到不合适的节点上。每个节点上都可以应用一个或多个 taint ,这表示对于那些不能容忍这些 taint 的 pod,是不会被该节点接受的。如果将 tol...转载 2020-03-03 16:43:49 · 389 阅读 · 0 评论 -
kubeadm 无法下载镜像问题
kubeadm 是kubernetes 的集群安装工具,能够快速安装kubernetes 集群。kubeadm init 命令默认使用的docker镜像仓库为k8s.gcr.io,国内无法直接访问,于是需要变通一下。首先查看需要使用哪些镜像kubeadm config images list#输出如下结果k8s.gcr.io/kube-apiserver:v1.12.2k8s....转载 2020-03-02 17:12:46 · 1876 阅读 · 0 评论 -
kubernetes 网络组件简介(Flannel, Open vSwitch,Calico)
k8s的网络模型假定了所有Pod都在一个可以直接连通的扁平的网络空间中。这是因为k8s出自Google,而在GCE里面是提供了网络模型作为基础设施的,所以k8s就假定这个网络已经存在。而在大家私有的平台设施里搭建k8s集群,就不能假定这种网络已经存在了。我们需要自己实现这个网络,将不同节点上的Docker容器之间的互相访问先打通,然后运行k8s。目前已经有多个开源组件支持容器网络模型。本节介绍...转载 2020-01-14 11:24:14 · 996 阅读 · 0 评论 -
k8s 集群基本概念
k8s 集群基本概念一、概述: kubernetes是google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s(k与s之间有8个字母)二、基本概念 Pod:若干相关容器的组合,Pod包含的容器运行在同一host上,这些容器使用相同的网络命令空间、IP地址和端口,相互之间能通过localho...原创 2017-10-18 17:02:24 · 497 阅读 · 0 评论 -
Docker网络管理机制实例解析+创建自己Docker网络
实例解析Docker网络管理机制(bridge network,overlay network),介绍Docker默认的网络方式,并创建自己的网络桥接方式,将开发的容器添加至自己新建的网络,提高Docker网络安全和通信.1.给自己的docker (Dcoker1.12GA)容器起个名称给docker名称的好处是:- 容易记- 可以通过特殊命令,使得名称可以在容器和容器之间使用...转载 2017-07-24 11:23:21 · 450 阅读 · 0 评论 -
Dockerfile详解
Dockerfile详解利用Dockerfile文件,可以构建docker的image镜像命令使用通过-f参数指定Dockerfile路径,进行构建imagedocker build -f /path/to/a/Dockerfile . 或者,Dockerfile在当前目录,使用docker build . 使用-t参数,指定image名称$ docker...原创 2017-07-25 16:58:16 · 3226 阅读 · 1 评论 -
Docker 快速入门及试验环境配置
简介Docker 最初 dotCloud 公司内部的一个业余项目 Docker 基于 Go 语言 Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案 Docker 的基础是 Linux 容器(LXC)等技术 Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多 Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器下...转载 2017-03-27 14:39:32 · 1054 阅读 · 0 评论 -
docker环境搭建
Docker 包括三个基本概念 1.镜像(Image) 2.容器(Container) 3.仓库(Repository) docker的特性: 1.文件系统隔离:每个进程容器运行在完全独立的根文件系统里。 2.资源隔离:可以使用cgroup为每个进程容器分配不同的系统资源,例如CPU和内存。 3.网络隔离:每个进程容器运行在自己的网...转载 2017-03-27 14:42:09 · 849 阅读 · 0 评论