文章 87
评论 0
浏览 460246
k8s之kustomization

k8s之kustomization

一、kustomization介绍 Kustomize是一个独立的工具,用来通过kustomization文件定制Kubernetes对象。 从1.14 版本开始,kubectl也开始支持使用kustomization文件来管理Kubernetes对象。 要查看包含kustomization文件的目录中的资源,执行下面的命令: #只渲染输出不创建资源 kubectl kustomize <kustomization_directory> 要应用这些资源,使用 --kustomize 或 -k 参数来执行 kubectl apply #渲染并创建资源 kubectl apply -k <kustomization_directory> 二、使用说明 Kustomize是一个用来定制Kubernetes配置的工具。它提供以下功能特性来管理应用配置文件: 从其他来源生成资源 为资源设置贯穿性(Cross-Cutting)字段 组织和定制资源集合 2.1 生成配置文件 1.configMapGenerator configMapGenerator用来生成conf....

kubernetes集群镜像

kubernetes集群镜像

一、kubernetes集群镜像相关内容 kubernetes中每个pod的运行都需要指定相关镜像,kubelet在收到创建pod的命令后会进行拉取相关的镜像,镜像的拉取有相应的拉取策略,如下 1.1 镜像拉取策略 pod中容器的imagePullPolicy和镜像的标签会影响kubelet尝试拉取(下载)指定的镜像。 以下列表包含了 imagePullPolicy 可以设置的值,以及这些值的效果: IfNotPresent 只有当镜像在本地不存在时才会拉取。 Always 每当 kubelet 启动一个容器时,kubelet 会查询容器的镜像仓库, 将名称解析为一个镜像。 如果 kubelet 有一个容器镜像,并且对应的摘要已在本地缓存,kubelet 就会使用其缓存的镜像; 否则,kubelet 就会使用解析后的摘要拉取镜像,并使用该镜像来启动容器。 Never Kubelet 不会尝试获取镜像。如果镜像已经以某种方式存在本地, kubelet 会尝试启动容器;否则,会启动失败。 默认镜像拉取策略 当你(或控制器)向 API 服务器提交一个新的 Pod 时,你的集群....

kubectl备忘录

kubectl备忘录

一、kubectl备忘录 1.1 kubectl的bash自动补全 在bash中设置当前shell的自动补全,需先安装bash-completion包否则会报错 #方法1:临时生效退出重新登录会失效 source <(kubectl completion bash) #方法2:永久生效写入到/etc/profile文件中,这样会导致所有用户都会生效,如果只给一个用户生效请写到~/.bashrc文件中 echo 'source <(kubectl completion bash)' >>/etc/profile 您还可以为 kubectl 使用一个速记别名,该别名也可以与 completion 一起使用 cat ~/.bashrc source <(kubectl completion bash) alias k=kubectl #别名 complete -F __start_kubectl k #设置completion #执行命令如下 k get pod 1.2 kubectl认证文件 kubectl客户端工具与k8s集群通信,需要一个上下文配置文件....

Windows搭建k8s实验环境

Windows搭建k8s实验环境

一、Workstation的容器环境 依赖项: Workstation Pro 17 Windows 10 1809或更高版本 需要互联网以及科学上网 在新版本的Workstation中官方提供了一个vctl工具可进行容器的启动与管理,与docker功能基本相同,此外vctl还提供了KIND支持,以便KIND可以使用vctl容器作为节点来运行本地Kubernetes 集群。 相关的可执行文件捆绑在Workstation Pro应用程序中,可在C:\Program Files (x86)\VMware\VMware Workstation文件夹中找到这些文件。 以下部分简要说明了vctl命令行实用程序的三个可执行文件 containerd.exe:这是一个在后台运行的运行时守护进程。必须先启动containerd守护进程,然后才能运行任何与容器相关的操作。要启动该守护进程,请使用vctl system start命令,要停止该守护进程,请使用vctl system stop命令。 containerd-shim-crx-v2.exe:启动新容器时,将启动一个新的 container....

OpenKruise插件

OpenKruise插件

一、OpenKruise介绍 OpenKruise是一个基于Kubernetes的扩展套件,他提供的绝大部分能力都是基于CRD扩展来定义,他们不存在任何外部依赖,可以运行在任意纯净的Kubernetes集群中。简单来说OpenKruise对于Kubernetes是一个辅助扩展角色。Kubernetes自身已经提供了一些应用部署管理的功能,比如一些基础工作负载。 但对于大规模应用与集群的场景,这些基础功能是远远不够的。OpenKruise可以被很容易地安装到任意Kubernetes集群中,它弥补了Kubernetes在应用部署、升级、防护、运维等领域的不足。 OpenKruise包含了一系列增强版本的Workloads(工作负载),比如CloneSet、Advanced StatefulSet、Advanced DaemonSet、BroadcastJob等,它们不仅支持类似于 Kubernetes 原生 Workloads 的基础功能,还提供了如原地升级、可配置的扩缩容/发布策略、并发操作等。其中,原地升级是一种升级应用容器镜像甚至环境变量的全新方式,它只会用新的镜像重建 Pod 中....

Coredns

Coredns

一、Coredns简介 官方文档:https://coredns.io/plugins/ CoreDNS是一个DNS服务器,它是用Go编写的。CoreDNS与其他DNS服务器不同,因为它非常灵活几乎所有功能都包含到插件中。 kubernetes中使用coredns提供service资源名称的域名解析,使用kubernetes插件。 当然coredns还有许多的实用插件,官方网站:https://coredns.io/plugins/ 二、Coredns使用 2.1 Coredns配置文件 .:53 { hosts { 10.0.0.1 example.org fallthrough } forward . 114.114.114.114:53 #上面无法处理的请求会传到这里 prometheus loadbalance log } 2.2 插件 1.errors 在查询处理过程中遇到的任何错误都将打印到标准输出。特定类型的错误可以在一段时间内合并和打印一次。 基本语法: errors 2.health 启用进程范围的健康探测接口。当CoreDNS启动并运行时,它会返回200 OK ....

Calico网络策略详解

Calico网络策略详解

一、Calico网络策略介绍 官方文档:https://projectcalico.docs.tigera.io/about/about-network-policy 1.1 什么是kubernetes网络策略 网络策略是保护Kubernetes网络的主要工具。它允许你轻松限制集群中的网络流量,以便只允许您想要流动的流量。 为了理解网络策略的重要性,让我们简单探讨一下网络安全通常是如何在网络策略之前实现的。在企业网络中,网络安全是通过设计网络设备(交换机、路由器、防火墙)的物理拓扑及其相关配置来提供的。物理拓扑定义了网络的安全边界。在虚拟化的第一阶段,相同的网络和网络设备构造在云中被虚拟化,并且用于创建(虚拟)网络设备的特定网络拓扑的相同技术被用于提供网络安全。添加新的应用程序或服务通常需要额外的网络设计来更新网络拓扑和网络设备配置,以提供所需的安全性。 相比之下,Kubernetes 网络模型定义了一个平面网络,其中每个 pod 都可以使用 pod IP 地址与集群中的所有其他 pod 进行通信。这种方法极大地简化了网络设计,并允许在集群中的任何位置动态调度新的工作负载,而不依赖于网....

Longhorn云原生存储

Longhorn云原生存储

一、Longhorn基础介绍 官方github:https://github.com/longhorn/longhorn 官方网站:https://longhorn.io Longhorn是一个轻量级、可靠且功能强大的分布式块存储系统,适用于 Kubernetes。使用容器和微服务实现分布式块存储。Longhorn 为每个块储存设备卷创建一个专用的存储控制器,并在存储在多个节点上的多个副本之间同步复制该卷。存储控制器和副本本身是使用 Kubernetes 编排的。Longhorn 是免费的开源软件。它最初由Rancher Labs开发,现在作为云原生计算基金会的孵化项目进行开发。 Longhorn 支持以下架构: AMD64 ARM64(实验性) 使用Longhorn,您可以: 使用 Longhorn 卷作为 Kubernetes 集群中分布式有状态应用程序的持久存储 将您的块存储分区为 Longhorn 卷,以便您可以在有或没有云提供商的情况下使用 Kubernetes 卷。 跨多个节点和数据中心复制块存储以提高可用性 将备份数据存储在外部存储(如 NFS 或 AWS S3)中....

CNI插件之Calico

CNI插件之Calico

一、Calico基础介绍 官方网站:https://www.tigera.io/project-calico/ Calico 是一个 CNI 插件,为 Kubernetes 集群提供容器网络。它使用 Linux 原生工具来促进流量路由和执行网络策略。它还托管一个 BGP 守护进程,用于将路由分发到其他节点。Calico 的工具作为 DaemonSet 在 Kubernetes 集群上运行。这使管理员能够安装 Calico, kubectl apply -f ${CALICO_MANIFESTS}.yaml而无需设置额外的服务或基础设施。 Calico部署建议: 1.使用 Kubernetes 数据存储。 2.安装 Typha 以确保数据存储可扩展性。 3.对单个子网集群不使用封装。 4.对于多子网集群,在 CrossSubnet 模式下使用 IP-in-IP。 5.根据网络 MTU 和选择的路由模式配置 Calico MTU。 6.为能够增长到 50 个以上节点的集群添加全局路由反射器。 7.将 GlobalNetworkPolicy 用于集群范围的入口和出口规则。通过添加 names....

kubernetes之二进制安装1.25.+版本

kubernetes之二进制安装1.25.+版本

一、基础环境准备 集群规划信息: 主机名称IP地址说明 master01192.168.10.11master节点 master02192.168.10.12master节点 master03192.168.10.13master节点 node01192.168.10.14node节点 node02192.168.10.15node节点 master-lb127.0.0.1:6443nginx代理监听地址 说明: master节点为3台实现nginx进行代理master流量实现高可用,master也安装node组件。 node节点为2台 nginx在所有节点安装,监听127.0.0.1:6443端口 系统使用centos7.X 1.1 基础环境配置 1.所有节点配置hosts cat >>/etc/hosts<<EOF 192.168.10.11 master01 192.168.10.12 master02 192.168.10.13 master03 192.168.10.14 node01 192.168.10.15 node02 EOF ....

kubernetes之kubeadm安装1.25.+版本

kubernetes之kubeadm安装1.25.+版本

一、基础环境准备 集群规划信息: 主机名称IP地址说明 master01192.168.10.51master节点 master02192.168.10.52master节点 master03192.168.10.53master节点 node01192.168.10.54node节点 node02192.168.10.55node节点 master-lb127.0.0.1:16443nginx组件监听地址 说明: master节点为3台实现高可用,并且通过nginx进行代理master流量实现高可用,master也安装node组件。 node节点为2台 nginx在所有节点安装,监听127.0.0.1:16443端口 系统使用centos7.X 1.1 基础环境配置 1.所有节点配置hosts cat >>/etc/hosts<<EOF 192.168.10.11 master01 192.168.10.12 master02 192.168.10.13 master03 192.168.10.14 node01 192.168.10.15 n....

生而为人