在运行基于 Kubernetes 的 CI/CD 过程中,经常有需求在容器中对 Kubernetes 的资源进行操作,其中隐藏的安全问题,目前推荐的最佳实践也就是使用 Service Account 了。而调试账号能力的最好方法,必须是 kubectl 了。下面就讲讲如何利用 kubectl 引用
Argo workflow 是什么 老牌的 CICD 工具 Jenkins 应该是大部分都接触过的,而在云原生时代,诞生了两大 CI/CD 框架,也就是 Argo Workflow 和 Tekton,本文主要介绍一下 Argo Workflow。 Argo Workflow 是一个云原生的工作流引擎
本文讲解 kubernetes 的安全机制。主要会按照这几个部分来讲解:APIServer 认证、授权、准入控制等。 我们都知道 kubenetes 默认在两个端口提供服务:一个是基于 https 安全端口 6443,另一个是基于 http 的非安全端口 8080。其中非安全端口 8080 限制只能
前言 在进行日志收集的过程中,我们首先想到的是使用Logstash,因为它是ELK stack中的重要成员,但是在测试过程中发现,Logstash是基于JDK的,在没有产生日志的情况单纯启动Logstash就大概要消耗500M内存,在每个Pod中都启动一个日志收集组件的情况下,使用logstash有
前言 原生 Kubernetes 调度器仅基于资源的 Request 进行调度,在生产环境资源的真实使用率和申请率往往相差巨大,造成资源浪费的同时也会造成节点的负载不均衡。crane-sheduler 基于prometheus集群真实资源负载进行调度,将其应用于调度过程中的 Filter 和 Sco
简介: 这篇文章里我们将展示如何在 kubernetes 上监控 nginx,介绍不同的使用示例,在平台上运行的特性和相关维度,以及 dashboards 和 alerts。 1、为什么选择 Nginx Nginx 是一个 web 服务器,常用作反向代理、负载均衡以及 web 缓存。天生具有高并发能
背景介绍 在Kubernetes中卷的作用在于提供给POD存储,这些存储可以挂载到POD中的容器上,进而给容器提供存储。 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是
一、核心概念 Horizontal Pod Autoscaling,简称HPA,是Kubernetes中实现POD水平自动伸缩的功能。云计算具有水平弹性的特性,这个是云计算区别于传统IT技术架构的主要特性。对于Kubernetes中的POD集群来说,HPA可以实现很多自动化功能,比如当POD中业务负
持续集成构建使用了以下版本的外部依赖关系,但是以下内容只供用户参考,用户在决定使用哪些版本的etcd,docker或rkt之前请查阅相关的安装或升级指南。 • Docker 1.10.3,1.11.2,1.12.6版本已经过验证 • Docker 1.12.6版本已知问题 1、 overlay2驱动
背景情况 从Docker1.11版本开始,Docker依赖于containerd和runC来管理容器,containerd是控制runC的后台程序,runC是docker公司按照OCI标准规范编写的一个操作容器的命令行工具,containerd这个后台程序还可以操作满足OCI标准规范的其他容器工具,
本文是Kubernetes.io官方文档中介绍如何创建暴露外部IP地址的Kubernetes Service 对象。 学习目标 运行Hello World应用程序的五个实例。 创建一个暴露外部IP地址的Service对象。 使用Service对象访问正在运行的应用程序。 准备工作 安装kube
本指南用于kubeadm将集群从1.6.x版本升级到1.7.x版本。低于1.6的群集不支持升级,如果使用kubeadm Beta版本时,也不支持升级。 说明:本次升级将覆盖由kubeadm管理的所有资源(静态pod manifest文件,kube-system namespace中的service
背景概念 出于安全方面的考虑,Kubernetes提供了日志审计记录,用来记录不同普通用户、管理员和系统中各个组件的日志信息。 Kubernetes日志审计是Kube-apiserver组件的一部分功能,通过日志审计来记录apiserver上面所有请求处理过程。每条审计日志记录包括两行: 1、 请
背景概念 在Kubernetes中,为了保证业务不中断或业务SLA不降级,需要将应用进行集群化部署。通过PodDisruptionBudget控制器可以设置应用POD集群处于运行状态最低个数,也可以设置应用POD集群处于运行状态的最低百分比,这样可以保证在主动销毁应用POD的时候,不会一次性销毁太多
Node授权是一种特殊授权模式,专门授权由kubelet访问的API请求。 概述 Node授权器允许kubelet执行的API操作包括: 读: services endpoints nodes pods secrets, configmaps, persistent volume claims a
参考:https://kubernetes.io/docs/concepts/storage/volumes/ 一个运行中的容器,缺省情况下,对文件系统的写入,都是发生在其分层文件系统的可写层的,一旦容器运行结束,所有写入都会被丢弃。因此需要对持久化支持。 Kubernetes 中通过 Volume
前言 本文已归档到 kubernetes-handbook 【第三章用户指南】的【在Kubernetes中开发部署应用】小节中,一切更新以 GitHub 为准。 本文档不是说明如何在 kubernetes 中开发和部署应用程序,如果您想要直接开发应用程序在 kubernetes 中运行可以参考 适用
Kubernetes v1.7 新增了 Initializers,它可以用来方便地扩展准入控制,今天的文章来自 Google Kubernetes 现役工程师 Ahmet Alp Balkan,让他带领我们详解 Initializer。上期将带大家做一个简单的了解,明白 Initializers 到
基础操作 一个正常运行的 Kubernetes 集群,除了利用访问控制对集群操作的许可进行限制之外,对于操作过程的跟踪审计也是比不可少的,围绕不同的实体,例如用户、节点以及各种工作负载进行观测是很有必要的。Kubernetes 的 API Server 提供了审计日志支持,利用审计日志的方式对系统内
相关原理概述 先来讲讲什么是CNI? CNI(容器网络接口)是一种操作容器网络规范,包含方法规范,参数规范等。 CNI只关心容器的网络连接,在容器创建时分配网络资源,并在删除容器时删除分配的资源。因为这个焦点,CNI有广泛的支持,规格易于实现。CNI接口只需要实现两个方法,一个创建容器时调用,一个删