准备工作 兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及那些没有包管理器的发行版提供了通用说明。 每台机器 2 GB 或更多 RAM(任何更少都会为您的应用程序留下很小的空间)。 2 个 CPU 或更多。 集群中所有机器之间的完整网络连接(公共或专用网络都可以)。 每个节点的唯一主机名、MAC 地址和 product_uuid。有关更多详细信息,请参见此处 。 您的机器上的某些端口是开放的。有关更多详细信息,请参见此处 。 交换Swap分区。必须禁用Swap才能使 kubelet 正常工作。 我的服务器配置列表 没有必要按照我的环境来,个人一般机器建议以下...

介绍 Envoy Nginx HAproxy HTTP/2 对HTTP/2有最完整的支持,同时支持upstream和downstream的HTTP/2 1.9.5以后有限支持HTTP/2,只在upstream server支持,downstream依然是1.1 不支持 Rate Limit 通过插件进行限流 支持基于配置的限流,只支持基于源IP的限流 ACL 给予插件实现四层的ACL 给予源/目的地址实现ACL Connection draining 支持hot reload,并且通过share memory实现connection draining功能 Plush版本才支持 支持热启动,但是不保证丢弃...

Istio架构 Istio 服务网格从逻辑上分为数据平面和控制平面,因为Istio是Envoy的控制平面。 数据平面 由一组智能代理(Envoy )组成,被部署为 Sidecar。这些代理负责协调和控制微服务之间的所有网络通信。它们还收集和报告所有网格流量的遥测数据。 控制平面 管理并配置代理来进行流量路由。 下图展示了组成每个平面的不同组件: 从完整意义上来讲,Istio服务网格逻辑上分为数据平面和控制平面。 目前Istio已经回归单体服务架构了 控制平面: 由多个组件组成完成控制机制,主要有Pilot、Citadel、Galley,新版已经移除限流的组件Mixer。 Pilot: 控制面的核心组件,...

先前了解 参考链接:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#dockershim-deprecation 参考链接:https://github.com/kubernetes/kubernetes/pull/94624 kubelet中的Docker支持现在已弃用,并将在未来的版本中删除。kubelet使用了一个名为dockershim的模块,该模块实现了对Docker的CRI支持,并在Kubernetes社区中发现了维护问题。我们鼓励您评估迁移到一个容器运行时的情况,该容器运行时是CRI(v1alpha1...

本章了解内容 EmptyDir HostPath NFS PV和PVC 生命周期 StorageClass EmptyDir ​ EmptyDir是基础的Volume类型,一个EmptyDir就是Host上的一个空目录。EmptyDir是在Pod被分配到节点时创建的,它的初始化内容为空,并且无需指定宿主机上对应的目录文件,因为Kubernetes会自动的为他分配一个目录。当Pod被销毁的时候,EmptyDir中的数据也会永久的被删除。 1. EmptyDir的用途 作为临时空间使用,例如某些应用程序所运行时所需要的临时目录,并且无需永久保留 一个容器需要从另一个容器中获取数据的目录(多容器共享目录) 2. 模拟容器文件共享 ...

此问题引出的是生产环境中所有的资源完全充足,但是会出现更新Pod、删除Pod、新建Pod无法调度的情况。 生产环境解决问题办法 找到问题跟原所在,默认的maxPods: 110,K8S默认一个节点上的pod调度数是110,当前有限制pod数的需求。 vim /var/lib/kubelet/config.yaml maxPods: 110 # 修改为maxPods: 330 影响Pod调度的情况 requests资源限制 requests:是一种硬限制,Kubernetes在进行Pod请求调度的时候,节点的可用资源必须满足500m的CPU才能进行调度,且使用最大限制为1个CPU,如果该Pod超过请求的最大限制,...

编写你的Dockerfile FROM centos:8 # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added RUN groupadd -r -g 1000 redis && useradd -r -g redis -u 1000 redis # Redis信息 注意SHA校验 ENV REDIS_VERSION 6.0.8 ENV REDIS_DOWNLOAD_URL...

注意:请各位记住把所有离线包全拿到本地….. 在线部署chartmuseum 直接使用最简单的 docker run 方式,使用local 本地存储方式,通过 -v 映射到宿主机 /opt/charts 更多支持安装方式见官网 mkdir /opt/charts docker run -d \ -p 8080:8080 \ -e DEBUG=1 \ -e STORAGE=local \ -e STORAGE_LOCAL_ROOTDIR=/charts \ -v /opt/charts:/charts \ chartmuseum/chartmuseum:latest 下载Skywalking包 git clone...

ConfigMap了解 描述信息ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者 JSON 二进制大对象 有点儿类似于zookeeper nacos这种服务注册中心 configMap的创建 使用目录创建 $ ls docs/user-guide/configmap/kubectl/ game.properties ui.properties $ cat...

持久化存储-NFS Emptydir:是本地存储,Pod重启,数据不存在了 Nfs:网络存储,Pod重启后,数据还是存在的 部署NFS服务器 可以单独设置一台服务器为NFS服务器 yum -y install nfs-utils systemctl start nfs 设置挂载目录 mkdir /data/k8s_nfs -p vim /etc/exports /data/k8s_nfs *(rw,no_root_squash) 在K8S节点上安装NFS yum -y install nfs-utils 部署应用挂载NFS vim...