K8S搭建SonarQube并集成到Jenkins 前提:已经搭建好k8s环境 搭建postgres数据库 存储类是使用nfs,下面是yaml内容 apiVersion: v1 kind: PersistentVolume metadata: name: postgres-pv namespace: devops labels: app: post…
Ingress获取真实IP 一般情况下,经过ingress的请求会携带headerX-Real-IP,用户可根据header解析出真实访问IP 但是有一种情况,用户请求可能经过多个nginx才达到ingress, 通过上述方法得到的并不是用户的真实IP了(比如现在我模拟云平台nginx->ingress,就无法获取到真实IP) user->requ…
Jenkins集成Kubernetes集群(Master-Slave分布式构建方案) 1.Kubernetes 环境安装 Jenkins --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: jenkins-admin rules: - apiG…
Jenkins Config File Provider 插件 创建kubeconfig文件 说明 Jenkins的Config File Provider其实就是存储kubectl用于连接k8s集群的kubeconfig配置文件,其实就是/root/.kube/config [root@k8s-master1 .kube]# pwd &&…
k8s部署gitlab并初始化和登录 准备环境 创建nfs共享目录 在nfs服务器创建共享目录,部署的gitlib使用共享目录来进行持久化,这样不管在哪个节点运行gitlib都没有关系 mkdir -p /data/nfs_data/gitlab/{logs,etc,opt} 添加到共享 [root@k8s-node2 nfs_data]# cat…
Jenkins-K8s动态部署Slave过程踩过坑 最近基于K8S集群部署jenkins,想着都已经上K8S了,为啥不基于Kubernetes实现动态Agent构建机制呢?部署过程的文档后面有空再补吧~ 于是乎,在部署过程中,遇到一个大坑吧,就记录一下。 问题1:mvn 找不到 JAVA_HOME 出现的错误 [Pipeline] sh + mvn…
ReplicationController 与 ReplicaSet 与 Deployment 关联 RC (ReplicationController )主要的作用就是用来确保容器应用的副本数始终保持在用户定义的副本数 。即如果有容器异常退出,会自动创建新的Pod来替代;而如果异常多出来的容器也会自动回收 Kubernetes 官方建议使用 RS…
K8S中iptables和ipvs区别比较 从k8s的1.8版本开始,并在v1.9中进入了beta,kube-proxy引入了IPVS模式,IPVS模式与iptables同样基于Netfilter,但是ipvs采用的hash表,iptables采用一条条的规则列表。 iptables又是为了防火墙设计的,集群数量越多iptables规则就越多,而i…
RKE搭建k8s集群&Helm3部署Rancher高可用 此次是:RKE的方式快速部署K8S集群(https://199604.com/2400)的进一步文章 运行环境 机器需要满足以下几个条件: 一台或多台机器,操作系统CentOS7.x-86_64(个人选择CentOS7.9) 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘…
Kubectl命令自动补全 yum -y install bash-completion source /usr/share/bash-completion/bash_completion source <(kubectl completion bash) echo "source <(kubectl completion bash)"…
k8s中Cgroup:systemd和cgroupfs的区别 什么是Cgroup Cgroup是control group的简写,属于Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用,也就是做资源QoS,这些资源主要包括CPU、内存、block I/O和网络带宽。Cgroup从2.6.24开始进入内核主线,目前各大发行版都默认打…
RKE的方式快速部署K8S集群 使用RKE的方式部署K8S的高可用集群。RKE是一款经过CNCF认证的开源Kubernetes发行版,可以在Docker容器内运行。它通过删除大部分主机依赖项,并为部署、升级和回滚提供一个稳定的路径,从而解决了Kubernetes最常见的安装复杂性问题。 借助RKE,Kubernetes可以完全独立于正在运行的操作系…
使用二进制方式搭建k8s集群 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统CentOS7.x-86_64(个人选择CentOS7.9) 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘50GB或更多 集群中所有机器之间网络互通 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提…
k8s-kubectl命令自动补全 Centos yum install -y bash-completion source /usr/share/bash-completion/bash_completion source <(kubectl completion bash) echo "source <(kubectl comple…
k8s-Metrics Serverv0.5.2安装以及报错解决 在查看k8s 环境中,使用top命令查看Pod的CPU、内存使用过程中,遇到以下问题: $ kubectl top node W0818 03:22:46.090578 26207 top_pod.go:140] Using json format to get metrics.e-…
Kubernetes学习手札-DashBoard部署 之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界面(Dashboard)。用户可以使用Dashboard部署容器化的应用,还可以监控应用的状态,执行故障排查以及管理kubernet…
Kubernetes学习手札-安全认证 9.1 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。 客户端 在Kubernetes集群中,客户端通常有两类: User Account:一般是独立于kubernetes之外的…
Kubernetes学习手札-数据存储 在前面已经提到,容器的生命周期可能很短,会被频繁地创建和销毁。那么容器在销毁时,保存在容器中的数据也会被清除。这种结果对用户来说,在某些情况下是不乐意看到的。为了持久化保存容器的数据,kubernetes引入了Volume的概念。 Volume是Pod中能够被多个容器访问的共享目录,它被定义在Pod上,然后被…
Kubernetes学习手札-Service详解 7.1 Service介绍 在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服…
Kubernetes学习手札-Pod控制器详解 6.1 Pod控制器介绍 Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: 自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建 控制器创建的pod:kubernetes通过控制器创建的pod,这种po…