报错信息如下: pods "k8s-logs-cndf5" is forbidden: SecurityContext.RunAsUser is forbidden 解决方法: 需要对准入控制器进行修改,然后重启apiserver--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota,NodeRestriction \SecurityContextDeny 不enabl…
一.部署Kubernetes集群 1.1 Kubernetes介绍 Kubernetes(K8S)是Google开源的容器集群管理系统,K8S在Docker容器技术的基础之上,大大地提高了容器化部署应用简单高效.并且具备了完整的集群管理能力,涵盖项目周期的各个环节. Docker与Kubernetes联系:Docker是一个容器引擎,用于运行容器,Kubernetes是一个容器编排系统,不具备容器引擎功能,相比Docker是一个更高级封装,而他们在一起堪称珠联璧合. 1.2 创建Kubernet…
部署apache服务Forbidden 403问题小结 ForbiddenYou don't have permission to access / on this server. http错误代码403:403 Forbidden 资源不可用.服务器理解客户的请求,但拒绝处理它.通常由于服务器上文件或目录的权限设置导致. 通常情况可能(但不限于此)的原因有: 原因1:apache配置文件中没有对站点目录的权限许可,这通常是在初始安装apache后,更改了默认的apache站点目录时所至(重要,…
Configure a Pod to Use a PersistentVolume for Storage how to configure a Pod to use a PersistentVolumeClaim for storage. Here is a summary of the process: A cluster administrator creates a PersistentVolume that is backed by physical storage. The admi…
前言 在运行一个容器时,有时候需要使用sysctl修改内核参数,比如net..vm..kernel等,sysctl需要容器拥有超级权限,容器启动时加上--privileged参数即可.那么,在kubernetes中是如何使用的呢? Security Context kubernetes中有个字段叫securityContext,即安全上下文,它用于定义Pod或Container的权限和访问控制设置.其设置包括: Discretionary Access Control: 根据用户ID(UID)和…
一.自动发现类型 在上一篇文中留了一个坑: 监控某个statefulset服务的时候,我在service文件中定义了个EP,然后把pod的ip写死在配置文件中,这样,当pod重启后,IP地址变化,就监控不到数据了,这肯定是不合理的. 如果在我们的 Kubernetes 集群中有了很多的 Service/Pod,那么我们都需要一个一个的去建立一个对应的 ServiceMonitor 对象来进行监控吗?这样岂不是也很麻烦么? 为解决上面的问题,Prometheus Operator 为我们提供了一个…
Kubernetes自身并没有用户管理能力,无法像操作Pod一样,通过API的方式创建/删除一个用户实例,也无法在etcd中找到用户对应的存储对象. 在Kubernetes的访问控制流程中,用户模型是通过请求方的访问控制凭证(如kubectl使用的kube-config中的证书.Pod中引入的ServerAccount)产生的 Kubernetes API的请求从发起到其持久化入库的流程如图:     一.认证阶段(Authentication) 判断用户是否为能够访问集群的合法用户. apis…
由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控: 什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本. 2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prom…
k8s监控实战-grafana出图_alert告警 目录 k8s监控实战-grafana出图_alert告警 1 使用炫酷的grafana出图 1.1 部署grafana 1.1.1 准备镜像 1.1.2 准备rbac资源清单 1.1.3 准备dp资源清单 1.1.4 准备svc资源清单 1.1.5 准备ingress资源清单 1.1.6 域名解析 1.1.7 应用资源配置清单 1.2 使用grafana出图 1.2.1 浏览器访问验证 1.2.2 进入容器安装插件 1.2.3 配置数据源 1.…
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4):用户及权限管理 理解OpenShift(5):从 Docker Volume 到 OpenShift Persistent Volume ** 本文基于 OpenShift 3.11,Kubernetes 1.11 进行测试 *** OpenShift 支持 RBAC(Role Based Acc…
SCC使用UserID,FsGroupID以及supplemental group ID和SELinux label等策略,通过校验Pod定义的ID是否在有效范围内来限制pod的权限.如果校验失败,则Pod也会启动失败.SCC的策略值设置为RunAsAny表示pod拥有该策略下的所有权限.否则只有pod的SCC设置与SCC策略匹配时才能通过认证. SCC可能会给出所允许的策略的值的范围(如Must RunAsRange),如果pod中没有指定对应策略的值,则默认使用该pod所在的project中…
准备工作: openshift 默认不允许UID为0的容器运行,要先授权scc以便安装istio # oc adm policy add-scc-to-user anyuid -z istio-ingress-service-account -n istio-system # oc adm policy add-scc-to-user anyuid -z default -n istio-system # oc adm policy add-scc-to-user anyuid -z prome…
本文来自Rancher Labs 什么是Pod安全策略? Kubernetes Pod安全策略(PSP)是Kubernetes安全版块中极为重要的组件.Pod安全策略是集群级别的资源,用于控制Pod安全相关选项,并且还是一种强化Kubernetes工作负载安全性的机制.Kubernetes平台团队或集群运维人员可以利用它来控制pod的创建以及限制特定的用户.组或应用程序可以使用的功能. 举个简单的例子,使用PSP你可以: 防止特权Pod启动并控制特权升级. 限制Pod可以访问的主机命名空间.网络…
Pod安全策略对于强化K8S集群安全至关重要.本文将延续之前的文章继续深入介绍Pod安全策略. 首先,简单介绍了如何将Pod与Pod安全策略相关联,并使用RBAC来展示具体步骤.然后介绍如何在Rancher中启用默认的PSP和创建自定义PSP.最后将使用一种工具来简化生产中Pod安全策略的使用,极大提升生产力,赶紧戳文咯~ 本文来自RancherLabs 在之前的文章中,我们演示了如何使用受限的PSP策略作为默认值在Rancher中启用PSP.我们还展示了如何防止特权Pod被接纳到集群中. 我们…
前文我们聊到了k8s的configmap和secret资源的说明和相关使用示例,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/14194944.html:今天我们来了解下k8s上的statefulSet控制器的相关话题: 1.statefulset控制器的作用 简单讲statefulset控制器主要用来在k8s上管理有状态应用pod:我们经常运维的一些应用主要可以分为4类,分别从是否有状态和是否有存储两个维度去描述,我们可以将应用分为有状态无存储,有状态…
apollo小结 课程目录 一.容器云监控prometheus概述 https://prometheus.io/docs/introduction/overview/ #官方文档 https://github.com/prometheus/prometheus #代码github官网 原理 Exporter相当于监控通信的中间件 Pushgateway比pull速度快,让job主动将数据发送给pushgateway 服务发现(难度大) ,静态配置发现目标 Grafana专门做数据展示 架构介绍…
1.在pod中使用宿主机命名空间.端口等资源 pod中的容器通常在分开的Linux命名空间中运行.这些命名空间将容器中的进程与其他容器中,或者宿主机默认命名空间中的进程隔离开来. 例如,每一个pod有自己的IP和端口空间,这是因为它拥有自己的网络命名空间.类似地,每一个pod拥有自己的进程树,因为它有自己的PID命名空间.同样的,pod拥有自己的IPC命名空间,仅允许同一pod内的进程通过进程间通信(Inter Process Communication,简称IPC)机制进行交流. 1.1 在p…
RBAC 权限控制 对资源对象的操作都是通过 APIServer 进行的,那么集群是怎样知道我们的请求就是合法的请求呢?这个就需要了解 Kubernetes 中另外一个非常重要的知识点了:RBAC(基于角色的权限控制). 管理员可以通过 Kubernetes API 动态配置策略来启用RBAC,需要在 kube-apiserver 中添加参数--authorization-mode=RBAC,如果使用的kubeadm 安装的集群那么是默认开启了 RBAC 的,可以通过查看 Master 节点上…
Kubernetes过一系列机制来实现集群的安全机制,包括API Server的认证授权.准入控制机制及保护敏感信息的Secret机制等.集群的安全性必须考虑以下的几个目标: 保证容器与其所在宿主机的隔离: 限制容器给基础设施及其他容器带来消极影响的能力: 最小权限原则,合理限制所有组件权限,确保组件只执行它被授权的行为,通过限制单个组件的能力来限制他所能达到的权限范围: 明确组件间边界的划分: 划分普通用户和管理员角色: 在必要的时候允许将管理员权限赋给普通用户: 允许拥有Secret数据(K…
说明 在openshift环境中,可以通过oc project {project_name}命令来切换project,那么在k8s中式如何切换namespace的呢?(ocp的project即相当于k8s中的ns) 实例 创建ns #创建dev 和 prod ns kubectl create ns dev kubectl create ns prod 查看默认上下文用于访问api的信息 #通过kubectl config view或者cat ~/.kube/config 查看默认上下文使用的c…
1.基础架构 1.1.架构图 Zookeeper是Dubbo微服务集群的注册中心 它的高可用机制和k8s的etcd集群一致 java编写,需要jdk环境 1.2.节点规划 主机名 角色 ip hdss7-11.host.com k8s代理节点1,zk1 10.4.7.11 hdss7-12.host.com k8s代理节点2,zk2 10.4.7.12 hdss7-21.host.com k8s运算节点1,zk3 10.4.7.21 hdss7-22.host.com k8s运算节点2,jenk…
http://blog.itpub.net/28916011/viewspace-2215100/ 对作者文章有点改动 注意kubeadm创建的k8s集群里面的认证key是有有效期的,这是一个大坑!!!!!! 目前RBAC是k8s授权方式最常用的一种方式. 在k8s上,一个客户端向apiserver发起请求,需要如下信息: 1)username,uid, 2) group, 3) extra(额外信息) 4) API 5) request path,例如:http://127.0.0.1:808…
简介 Prometheus 最初是 SoundCloud 构建的开源系统监控和报警工具,是一个独立的开源项目,于2016年加入了 CNCF 基金会,作为继 Kubernetes 之后的第二个托管项目. 特征 ​ Prometheus 相比于其他传统监控工具主要有以下几个特点: ​ 具有由 metric 名称和键/值对标识的时间序列数据的多维数据模型 ​ 有一个灵活的查询语言 ​ 不依赖分布式存储,只和本地磁盘有关 ​ 通过 HTTP 的服务拉取时间序列数据 ​ 也支持推送的方式来添加时间序列数据…
日志系统elfk 前言 经过上周的技术预研,在本周一通过开会研究,根据公司的现有业务流量和技术栈,决定选择的日志系统方案为:elasticsearch(es)+logstash(lo)+filebeat(fi)+kibana(ki)组合.es选择使用aliyun提供的es,lo&fi选择自己部署,ki是阿里云送的.因为申请ecs需要一定的时间,暂时选择部署在测试&生产环境(吐槽一下,我司测试和生产公用一套k8s并且托管与aliyun......).用时一天(前期有部署的差不多过)完成在ku…
Jenkins官网:https://www.jenkins.io/zh/ Jenkins 2.190.3 镜像地址:docker pull jenkins/jenkins:2.190.3 1.下载Jenkins镜像 在运维主机(mfyxw50.mfyxw.com)上操作 [root@mfyxw50 ~]# docker pull jenkins/jenkins:2.190.3 2.对jenkins打标签并上传至私有仓库 在运维主机(mfyxw50.mfyxw.com)上操作 [root@mfyx…
内容来源于官方 Longhorn 1.1.2 英文技术手册. 系列 Longhorn 是什么? Longhorn 云原生容器分布式存储 - 设计架构和概念 Longhorn 云原生容器分布式存储 - 部署篇 Longhorn 云原生容器分布式存储 - 券和节点 Longhorn 云原生容器分布式存储 - K8S 资源配置示例 Longhorn 云原生容器分布式存储 - 监控(Prometheus) Longhorn 云原生容器分布式存储 - 备份与恢复 Longhorn 云原生容器分布式存储 -…
零.示例 首先给出一个 Deployment+HPA+ PodDisruptionBudget 的完整 demo,后面再详细介绍其中的每一个部分: apiVersion: apps/v1 kind: Deployment metadata: name: my-app-v3 namespace: prod labels: app: my-app spec: replicas: 3 strategy: type: RollingUpdate rollingUpdate: maxSurge: 10%…
本文由个人笔记 ryan4yin/knowledge 整理而来 本文主要介绍我个人在使用 Kubernetes 的过程中,总结出的一套「Kubernetes 配置」,是我个人的「最佳实践」. 其中大部分内容都经历过线上环境的考验,但是也有少部分还只在我脑子里模拟过,请谨慎参考. 阅读前的几个注意事项: 这份文档比较长,囊括了很多内容,建议当成参考手册使用,先参照目录简单读一读,有需要再细读相关内容. 这份文档需要一定的 Kubernetes 基础才能理解,而且如果没有过实践经验的话,看上去可能会…
转载自:https://mp.weixin.qq.com/s/WYu3gDwKKf06f_FYbO9YRg 本文主要介绍我个人在使用 Kubernetes 的过程中,总结出的一套「Kubernetes 配置」,是我个人的「最佳实践」.其中大部分内容都经历过线上环境的考验,但是也有少部分还只在我脑子里模拟过,请谨慎参考. 阅读前的几个注意事项: 这份文档比较长,囊括了很多内容,建议当成参考手册使用,先参照目录简单读一读,有需要再细读相关内容. 这份文档需要一定的 Kubernetes 基础才能理解…
前面我们使用 Prometheus 采集了 Kubernetes 集群中的一些监控数据指标,我们也尝试使用 promQL 语句查询出了一些数据,并且在 Prometheus 的 Dashboard 中进行了展示,但是明显可以感觉到 Prometheus 的图表功能相对较弱,所以一般情况下我们会一个第三方的工具来展示这些数据,今天我们要和大家使用到的就是 Grafana. Grafana 是一个可视化面板,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持 Graphite.za…