K8S & Docker
文章平均质量分 87
本专栏主要介绍 docker & k8s 相关的知识 和 核心技能
欢迎大家加入 K8S & 云原生交流 QQ群一起学习: 284134230
昕光xg
专注于容器K8S,AI,机器人生态
展开
-
k8s笔记28--快速在ubuntu上基于二进制和源码安装containerd
Containerd是一个工业标准的容器运行时,它强调简单、健壮和可移植性。它可作为Linux和Windows的守护进程,能管理主机系统上完整容器生命周期: 镜像传输和存储、容器执行和管理、容器底层存储和网络等。它是CNCF下“毕业”的项目,旨在嵌入到更大的系统中,而不是由开发人员或最终用户直接使用。作为IT行业的人员最熟悉的容器产品大多是docker,可是docker较新的版本底层也在使用containerd来管理容器;原创 2024-03-29 23:07:06 · 1499 阅读 · 0 评论 -
k8s笔记27--快速了解 k8s pod和cgroup的关系
随着云计算、云原生技术的成熟和广泛应用,K8S已经成为容器编排的事实标准,学习了解容器、K8S技术对于新时代的IT从业者显得极其重要了。之前在文章docker笔记13–面试必知的容器核心技术中介绍了容器相关的核心技术,包括容器的隔离技术和限制技术,搞明白这些内容可以说理解了容器技术的底层原理。k8s作为当前最流行的开源的容器编排引擎,用来对容器化应用进行自动化部署、 扩缩和管理,它以pod为基础构成了各种有价值的工作负载。原创 2024-03-24 12:04:22 · 1578 阅读 · 1 评论 -
k8s笔记26--快速实现prometheus监控harbor
harbor是当前最流行的开源容器镜像仓库项目,被大量IT团队广泛应用于生产、测试环境的项目中。本文基于Harbor、Prometheus、Grafana介绍快速实现监控harbor的方法和步骤。原创 2024-02-25 17:30:22 · 1589 阅读 · 0 评论 -
docker笔记14--docker-nerdctl-crictl-ctr使用对比
随着容器云技术的成熟,越来越多的从业者开始接触、熟悉 docker和containerd 了,很多时候需要同时在 docker 和 containerd之间切换,因此有必要熟悉主流容器产品常见的交互工具。此处根据笔者使用经验整理出 docker nerdctl crictl ctl 四个工具的常见用法和注意事项,写在此处分享给有需要的小伙伴学习,也方便自己后续查阅.原创 2023-11-17 17:07:16 · 1276 阅读 · 0 评论 -
k8s笔记25--k8s 跨主机网络flannel
在单机环境下,容器间可以通过 docker0 网桥来通信,但其无法实现不同主机容器之间的通信问题,为了解决不同主机之间容器的通信问题,跨主机网络方案便诞生了。当前社区提供了近20种网络方案,具体见Kubernetes 文档/概念/集群管理/安装扩展(Addon);其中,Flannel 是最经典的几种网络方案之一,它是 CoreOS 公司主推的容器网络方案。原创 2023-05-04 23:35:48 · 1136 阅读 · 1 评论 -
docker笔记13--面试必知的容器核心技术
docker笔记13--面试必知的容器核心技术容器和虚拟机区别Docker 隔离技术Docker 限制技术容器文件系统K8S 如何创建 podK8S 如何调度 GPU podQ & A参考文档最近在温习docker 的相关知识,把容器和 k8s相关的部分内容总结了一下,贴在此处,以便于后续学习。在看这些核心内容前可以先看下如下几个问题,如果都能大致知道的话,那么可以说docker 容器技术比较熟练了,可以继续深挖或者学习其它内容了。Q1 : docker 中有哪些namespace?原创 2023-03-06 23:53:34 · 446 阅读 · 1 评论 -
k8s笔记24--安装metrics-server及错误处理
k8s笔记24--安装metrics-server及错误处理1 介绍2 安装3 常见错误第一次错误 持续 Failed probe第二次错误 bad status code "403 Forbidden"4 说明1 介绍最近一个同事在老版本的 k8s 上安装metrics-server,pod一直处于running 非就绪状态,经过查看发现存在 tls 、软件版本、 资源权限等问题。记录在此处,以便于后续查阅、同类问题续更。2 安装参考官方文档 kubernetes-sigs/metr原创 2023-02-09 17:07:11 · 3224 阅读 · 3 评论 -
k8s笔记23--使用kubernetes-event-exporter采集集群events日志
k8s笔记23--使用kubernetes-event-exporter采集集群events日志1 介绍2 部署测试2.1 写入kafka2.2 写入es3 注意事项4 说明1 介绍kubernetes-event-exporter 是一个用于采集k8s事件的工具,它允许我们将经常遗漏的 Kubernetes 事件导出到第三方平台或者数据库,以便用于可观察性或警报目的。event-exporter 可以将k8s事件存储到 Opsgenie、Webhooks、kafka、es等十几种平台|数原创 2022-10-18 21:32:27 · 2873 阅读 · 0 评论 -
k8s笔记22--使用fluent-bit采集集群日志
k8s笔记22--使用fluent-bit采集集群日志1 介绍2 部署 & 测试2.1 获取安装 fluent-bit2.2 直接采集日志到 es 集群2.3 直接采集日志到 kafka 集群3 注意事项4 说明1 介绍k8s笔记11–基于fluentd-kafka-es的日志收集方案 介绍了使用 fluentd 采集 k8s 集群日志的方法,但 fluentd 使用 CPU & Memory 效率相对较低,因此考虑采用更加轻量级的 fluent-bit 采集集群日志。本文介绍 fluen原创 2022-08-21 18:10:12 · 2730 阅读 · 2 评论 -
k8s笔记21--prometheus 监控 nginx ingress
1 介绍2 安装测试2.1 配置环境2.2 测试k8s 1.23.63 注意事项4 说明1 介绍nginx ingress controller 是 k8s 集群中最常用的 ingress controller 之一, 它可以根据 ingress 为集群中的应用配置负载均衡,从而使外部网络通过域名访问集群内的应用。实际项目中,除了使用 ingress 外,我们也需要监控 ingress 和 ingress controller 的相关信息,从而了解集群内服务和网络的可用性。本文基于 ngi原创 2022-07-25 22:49:06 · 2780 阅读 · 0 评论 -
k8s笔记20--基于 K8S 的 cicd 概述
k8s笔记20--基于 K8S 的 cicd 概述1 介绍2 方案实施2.1 Jenkins + kubectl + k8s2.2 Jenkins + helm + k8s2.3 Zadig + helm + k8s3 注意事项4 说明1 介绍近年来云服务|原生发展迅猛,企业上云已经成为家常便饭。当企业大量服务上云后,如何在云上快速部署、更新服务就是一个必须面对的问题。本文结合当下经典方案,分享以下3种常见基于 K8S的CICD方案,并加以案例介绍。方案 概述 评价jenkins +原创 2022-07-05 22:37:52 · 3138 阅读 · 4 评论 -
k8s笔记19--grafana配置node监控面板
k8s笔记19--grafana配置node监控面板介绍实施步骤前提条件配置方法面板效果注意事项说明介绍Grafana既可允许用户查询、可视化、提醒和理解其指标,无论它们存储在哪里,又可以创建,探索,并与团队分享美丽的仪表板,并培养数据驱动的文化。grafana 已经被各大企业广泛应用,可以说时下最流行的监控面板解决方案了。本文基于 grafana 强大的能力,用其监控节点重要信息,贴在此处以便于有需要的读者学。实施步骤前提条件搭建一套 k8s 集群, 可参考笔者博文 k8s笔记原创 2022-06-30 23:41:17 · 1439 阅读 · 0 评论 -
docker笔记12--使用nginx实现一个文件浏览器
docker笔记12--使用nginx实现一个文件浏览器介绍操作&测试准备配置文件:打包镜像:拉起容器:测试效果:说明介绍nginx 具备很强的代理功能,因此我们可以利用nginx 的特性实现一个简单的文件浏览器,本文基于nginx实现一个文件浏览器功能,且文件按照创建的时间递减排序(即最新创建的文件排序在最上面,方便用户查看最新文件)。操作&测试准备配置文件:default...原创 2022-06-10 22:37:50 · 1073 阅读 · 1 评论 -
k8s笔记18--快速入门ingress和ingress controller
k8s笔记18--快速入门ingress和ingress controller1 介绍2 部署 ingress-nginx controller3 测试4 注意事项5 说明1 介绍Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制。下面是一个将所有流量都发送到同一 Service 的简单 Ingress 示例:在这里插入图片描述Ingress 不会公开任意端口或协议。 将 HTTP 和 HTTPS 以外的服务原创 2022-05-11 00:11:18 · 1407 阅读 · 0 评论 -
ubuntu小技巧27--基于dnsmasq快速搭建局域网dns服务器
ubuntu小技巧27--基于dnsmasq快速搭建局域网dns服务器1 介绍2搭建dns服务器2.1 搭建步骤2.2 测试3 注意事项4 说明1 介绍dnsmasq是一个轻量级的DNS、TFTP、PXE、路由器通告和DHCP服务器。它旨在为局域网提供耦合的DNS和DHCP服务。通过dnsmasq,我们可以在局域网或个人虚拟机之间快速实现一个dns服务。本文基于dnsmasq快速实现了一个dns服务,使PC和各个虚拟机之间能够直接通过域名来访问。2搭建dns服务器2.1 搭建步骤1原创 2022-05-08 23:42:15 · 1631 阅读 · 0 评论 -
k8s笔记17--ubuntu & k8s 开启 swap功能
k8s笔记17--k8s 中途开启 swap功能1 介绍2 方法2.1 ubuntu 开启swap2.2 k8s 开启swap3 说明1 介绍swap 功能是 linux是一个非常强大的功能,类似于windows的虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。本文主要介绍如何开启linux系统的swap, 如何在开启swap功能的系统下运行 k8s 集群。2 方法2.1 ubuntu 开启swap原创 2022-05-01 17:28:16 · 1627 阅读 · 0 评论 -
docker笔记11--docker build 报错 devmapper: Thin Pool空间不够解决方法
docker笔记11--docker build 报错 devmapper: Thin Pool空间不够解决方法介绍案例注意事项说明介绍最近用docker构建镜像的时候,在中途出现 failed to create rwlayer: devmapper: Thin Poo … less than minimum required 报错。查阅资料发现是centos 上 docker启动的时候默认使用了devicemapper存储驱动,该驱动将docker目录挂载在 lvm 的分区上,该分区在使用过程中有一原创 2022-04-30 08:54:36 · 3809 阅读 · 2 评论 -
k8s笔记16--ingress 配置 gzip 和cache control
k8s笔记16--ingress 配置 gzip 和 cache control介绍ngx_http_gzip_module模块是一个过滤器,它使用" gzip "方法来压缩响应,这常有助于将传输数据的大小减少一半甚至更多。在nginx 中需要通过 gzip on | off; 来开启或停止,在ingress 中欧你还需要在configmap 中 配置 use-gzip: trueCache-Control HTTP报头字段保存请求和响应中的指令(指令),这些指令控制浏览原创 2022-04-29 22:48:34 · 7636 阅读 · 0 评论 -
k8s笔记15--配置共享内存
k8s笔记15--配置共享内存介绍案例docker 环境说明介绍容器启动后默认会有 64M 的共享内存挂载在/dev/shm 目录,用户可以向访问本地文件系统一样访问该共享内存,如果需要配置更大的内存,那么在docker中需要通过 shm-size 来获取,k8s 中需要通过挂载memory类型的emptyDir来实现。本文主要介绍如何配置docker 和 k8s 环境的共享内存目录,并加以案例说明。案例docker 环境默认为64M,如下图:在这里插入图片描述通 shm-size原创 2022-04-23 18:01:18 · 4847 阅读 · 1 评论 -
docker笔记10--安装与使用harbor
docker笔记10--安装与使用harbor1 介绍2 安装方法3 注意事项4 说明1 介绍Harbor是一个开源注册中心,它使用策略和基于角色的访问控制来保护工件,确保镜像被扫描、没有漏洞,并将镜像标记为受信任的。Harbor是CNCF的一个毕业项目,提供合规、性能和互操作性,帮助用户在Kubernetes和Docker等云本地计算平台上一致安全地管理工件。Harbor 在企业中使用越来越广泛了,非常有必要学习和使用它。本文将介绍其基本安装方法,以及相关注意事项。2 安装方法通过如下命令安装:原创 2022-02-20 13:30:49 · 1080 阅读 · 0 评论 -
docker笔记2.2--docker安装最新版 gitlab & 修改gitlab管理员密码
docker笔记2.2--docker安装最新版 gitlab & 修改gitlab管理员密码介绍最新安装方法修改gitlab 密码关闭 prometheus|grafana|alertmanager 和一系列 exporter说明介绍本文主要介绍如何使用docker 快速安装 gitlab 和修改 gitlab 用户密码。最新安装方法在 dockerhub gitlab/gitlab-ce/tags 中选择最新的版本, 然后参考官方文档安装即可; 安装前需要自己新建好volume目录,原创 2022-02-19 19:01:14 · 2478 阅读 · 0 评论 -
k8s笔记14--初次体验 开源云原生软件交付平台zadig
k8s笔记14--初次体验 开源云原生软件交付平台zadig介绍部署&测试部署测试注意事项说明介绍Zadig 是 KodeRover 公司基于 Kubernetes 自主设计、研发的开源分布式持续交付 (Continuous Delivery) 产品,为开发者提供云原生运行环境,支持开发者本地联调、微服务并行构建和部署、集成测试等。Zadig 内置了面向 Kubernetes、Helm、云主机/物理机、大体量微服务等复杂业务场景的最佳实践,为工程师一键生成自动化工作流 (workflow)。Za原创 2022-01-29 16:32:54 · 2167 阅读 · 0 评论 -
k8s安全07--使用AppArmor限制容器访问资源
k8s安全07--使用AppArmor限制容器访问资源1 介绍2 操作案例2.1 apparmor 基础命令2.2 通过AppArmor 限制pod访问的资源3 注意事项4 说明1 介绍AppArmor is a kernel enhancement to confine programs to a limited set of resources. AppArmor’s unique security model is to bind access control attributes to prog原创 2021-11-21 01:11:56 · 1709 阅读 · 0 评论 -
k8s安全06--sysdig 监控容器云安全
k8s安全06--sysdig 监控容器云安全介绍安装 & 使用安装使用案例注意事项说明介绍sysdig 是一个比较强大的安全工具,特别适用于容器、K8s 和云环境。也有很多用户觉得它是一个超级系统工具,比 strace、tcpdump、lsof 加起来还强大。可用来捕获系统状态信息,保存数据并进行过滤和分析,并且提供了命令行接口以及强大的交互界面。下面直接截了两张官网主页的图,可以清晰的看到它的主要应用场景和能为我们做什么。本文主要介绍sysdig 的安装和基础使用方法,后续会持续补充相关原创 2021-11-19 08:33:55 · 608 阅读 · 0 评论 -
k8s安全05--配置网络策略 NetworkPolicy
k8s安全05--配置网络策略1 介绍2 案例2.1 案例11.1 创建 ns 和 pod1.2 查看pod,svc 信息1.3 测试网络联通性1.4 在集群外部通过NodePort 访问服务1.5 创建网络策略,prod-a 拒绝任何访问1.6 测试网络策略1.7 创建网络策略, 允许标签为 app: front 的pod 访问1.8 测试网络策略2.2 案例22.1 创建ns 和 pod2.2 创建网络策略2.3 测试网络策略3 注意事项3.1 常见Selector功能区别4 说明1 介绍2 案例原创 2021-11-17 00:07:37 · 1674 阅读 · 0 评论 -
k8s安全04--kube-apiserver 安全配置
k8s安全04--kube-apiserver 安全配置1 介紹2 安全配置2.1 配置 insecure-port2.2 RBAC2.3 Service Accounts2.4 Researching Pod Security Policies限制pods使用指定的目录控制pod 的网络配置 allowedUnsafeSysctls2.5 Enable Pod Security Policies2.6 Enabling API Server Auditing2.7 Encrypting Secrets注意原创 2021-11-14 20:36:44 · 5442 阅读 · 0 评论 -
k8s安全03--云安全工具 kube-bench & OPA
k8s安全03--云安全工具 kube-bench & OPA1 介绍2 安全工具2.1 kube-bench2.2 OPA Gatekeeper3 注意事项4 说明1 介绍本文基于 k8s安全02–云安全工具与安全运行时 继续介绍几个常用的安全工具,包括 kube-bench 和 OPA(Open Policy Agent)。2 安全工具2.1 kube-benchkube-bench 努力像 Center for Internet Security, Inc. (CIS®), CIS原创 2021-11-08 01:45:56 · 841 阅读 · 0 评论 -
k8s笔记7.4--helm构建无端口类型chart
k8s笔记7.4--helm构建无端口类型chart介绍无端口chart注意事项说明介绍helm create chartName 后,默认创建了一个web类型的应用,而且配置了service 和 端口探测;如果直接更换为无端口的worker 类型应用,那么部署就报错了。因此需要调整helm chart文件,是指无端口和service 配置,然后再打包部署。本文以busybox 为例,打包一个无端口的helm chart,并部署到 k8s 中。无端口chart创建charthelm create原创 2021-08-21 17:20:49 · 390 阅读 · 0 评论 -
k8s笔记13--配置nfs-client-provisioner
k8s笔记13--配置nfs-client-provisioner介绍部署方式使用helm注意事项说明介绍NFS 客户端配置器是 Kubernetes 的自动配置器,它使用已经配置的 NFS 服务器,自动创建持久卷,从而为其它应用提供持久化存储。自动创建的持久卷在nfs的根目录下存储形式为:namespace−{namespace}-namespace−{pvcName}-${pvName}。本文通过helm部署nfs-client,并为minio 提供持久化存储。后续会在此处持续更新 nfs-cli原创 2021-08-20 12:49:51 · 2029 阅读 · 0 评论 -
k8s笔记12--grafana的配置和常见使用
k8s笔记12--grafana的配置和常见使用1 介绍2 安装和配置3 注意事项4 说明1 介绍Grafana 是用Go语言开发的开源数据可视化应用,其可以做数据监控和数据统计,且带有告警功能, 它当前最流行的指标可视化开源软件。根据官方介绍,Grafana允许我们查询、可视化、警告和理解指标,不论它们存储在哪里;它能让我们的团队一起创建、探索和分享漂亮的仪表板,并培养一种数据驱动的文化。本文根据需要在k8s集群中创建grafana,并对接Prometheus的数据源;后续笔者也会持续在本文中更新原创 2021-08-08 21:11:32 · 3046 阅读 · 3 评论 -
k8s笔记11--基于fluentd-kafka-es的日志收集方案
k8s笔记11--基于fluentd-kafka-es的日志收集方案1 介绍2 采集方案2.1 新建配置模板和rollover索引2.2 配置&部署fluentd2.3 新增 kafka 任务,按要求过滤日志到子topic2.4 配置logstash消费日志,并写入到对应索引中2.5 新建index pattern,查看日志3 注意事项4 说明1 介绍本文通过 fluentd 采集 k8s 指定 ns 的日志到kafka,然后按需过滤掉一些字段到子topic,最后通过logstash消费子top原创 2021-07-18 16:23:57 · 3075 阅读 · 1 评论 -
k8s笔记10--fluentd收集k8s集群日志到es
k8s笔记10--fluentd收集k8s集群日志到es1 介绍2 采集方案3 注意事项4 说明1 介绍2 采集方案3 注意事项4 说明原创 2021-07-18 15:44:50 · 4183 阅读 · 0 评论 -
k8s笔记7.3--基于gitlab、jenkins、helm、k8s的CI/CD
k8s笔记7.3--基于gitlab、jenkins、helm、k8s的CI/CD介绍软件配置流程案例注意事项说明介绍在云环境下,服务运维和发布通常会用到gitlab、jenkins、helm、k8s 和 harbor,因此基于这些工具搭建一套CI/CD 流程是非常有必要的。笔者在学习jenkins的时候,基于gitlab-jenkins-helm-k8s搭建了一套CI/CD,现将相关步骤记录在此处,以便于后续查阅、相关读者参考。软件配置搭建k8s集群笔者在学习k8s的时候搭建过多种k8s环境,原创 2021-06-28 22:22:01 · 1163 阅读 · 2 评论 -
k8s安全02--云安全工具与安全运行时
k8s安全01--云安全工具与安全运行时基础简介安全工具与运行时CIS-CattrivySecure Runtimes注意事项说明基础简介本文基于 k8s安全01–云安全简介 继续介绍几个常用的安全工具和安全配置,后续会在此文中持续更新相关的安全工具。安全工具与运行时CIS-CatCIS-Cat 是 The Center for Internet Security, Inc. (CIS®) 开发提供的一个免费工具,可以用来先检测系统中安全事项,以便于用户调整优化系统安全。安装jdk,笔者使用原创 2021-06-27 17:21:49 · 1153 阅读 · 0 评论 -
k8s笔记7.2--搭建私有helm仓库
k8s笔记7--搭建私有helm仓库1 安装基础软件2 搭建helm私有仓库3 chart 更新发布和案例3.1 更新发布3.2 helm 案例发布一个busybox chart4 常见操作和问题4.1 常见操作4.2 常见问题5 说明1 安装基础软件拉取 nginx 镜像用于提供helm仓库的http服务下载最新版本 helm-v3.6.1解压helm安装包,在 ~/.bashrc 添加环境变量即可PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/u原创 2021-06-24 22:04:44 · 5517 阅读 · 2 评论 -
k8s安全01--云安全简介
k8s安全01--云安全简介1 基础概念1.1什么是安全1.2 基础安全原则2 说明在云时代更加普遍的今天,云安全也逐被各大厂商关注,因此有必要了解常见的云安全知识。通过本文,可以理解安全处理的过程、基础安全准则、常见攻击类型,能够检测云安全里面的 4C(code, container, cluster, cloud),研究安全机构和安全资源。1 基础概念1.1什么是安全计算机安全指的是对计算机或者计算机系统的某个项目或者资产价值的保护;这里的资产有很多种类,包括硬件、软件、数据、程序、员工,以及原创 2021-04-18 14:17:37 · 1082 阅读 · 0 评论 -
k8s初级实战13--资源限制
4.3.24.3.38.3.3原创 2021-01-31 23:59:03 · 766 阅读 · 0 评论 -
k8s笔记9--升级kubeadm部署的集群
k8s笔记9--升级kubeadm部署的k8s集群1 介绍2 集群升级3 注意事项4 说明1 介绍2 集群升级3 注意事项4 说明1 administer-cluster/kubeadm/kubeadm-upgrade/原创 2021-01-30 15:21:59 · 296 阅读 · 0 评论 -
k8s初级实战12--pod 调度
k8s初级实战12--pod 调度1 简介2 基于 label 和 taints 控制调度2.1 通过 label 分配 pod2.2 通过 taints 控制 pod3 注意事项4 说明1 简介随着k8s 变得越来越大、越来越多样化,其调度管理就变得非常重要。k8s中通过kube-scheduler来进行调取,它通过topology-aware 算法来决定哪些节点可以运行一个pod。Scheduler 会跟踪集群中一系列的节点,并基于多个判断条件对节点进行过滤,然后通过优先级函数来决定每个pod应原创 2021-01-24 23:31:18 · 268 阅读 · 0 评论 -
k8s笔记8--快速部署k8s集群 v1.19.4--calico网络
@[TOC](k8s笔记8–快速部署k8s集群 v1.19.4( calico网络))1 说明k8s 部署的时候可以选择多种cni插件,每种插件都有其对应的特殊,最经典的的莫过于 Flannel 和 Calico。Flannel 是一个为 Kubernetes 提供叠加网络的网络插件,它基于 Linux TUN/TAP,使用 UDP 封装 IP 报文来创建叠加网络,并借助 etcd 维护网络的分配情况 。其后端支持VxLAN、host-gw和UDP,默认为VxLAN(在三层构建了一个大二层网络)。C原创 2021-01-24 17:49:52 · 1780 阅读 · 0 评论