分类标签归档:Kubernetes

K8S_应用_Prometheus监控


介绍

此图说明了Prometheus的架构及其生态系统组件:

image-20221122102646122

部署

通过K8S部署,包含node、server、alertmanager和grafana。通过kubectl apply -f [文件名]运行即可。

根据所列出的配置文件部署进行部署,则

  • 30001端口为altermanager
  • 30003端口为Prometheus Server UI
  • 30005端口为Grafana UI

node

使用daemonSet实现每个Node节点均部署node-exporter。server通过自动发现拉取各Node节点暴露出的指标。

node-exporter.yaml

apiVersion:

Read more

K8S_日常问题


证书过期

[root@k8s-master ~]$ kubectl get node 
Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2022-09-15T10:27:07+08:00 is after 2022-09-15T02:17:20Z
[root@k8s-master ~]$ kubeadm certs renew all  # 更新证书,更新完后会提示重启kube-apiserver, kube-controller-manager, 

Read more

K8S_基础设施_Ingress服务暴露


K8S服务暴露介绍

首先简要了解一下K8S中提供的暴露服务的三种方式

  1. LoadBlancer

该方式是kubernetes深度结合云平台的一个组件。当集群运行在云厂商提供的云平台上时,常用该方式对外暴露服务(收费)。

  1. NodePort

通过在集群的每个NodePort上暴露端口,访问指定端口即可访问到指定服务。一般使用这种方式时,都是选择固定端口,但服务一多就容易产生冲突或者不方便管理的情况。

  1. Ingress(方式)

  2. Ingress Controller

    Ingress Controller 实质上可以理解为是个监视器,Ingress Controller 通过不断地跟 ku

Read more

运维_基础设施_分布式文件存储minIO


分布式文件存储 minIO

文件系统

文件系统的作用:对磁盘空间进行统一规划,并提供接口给普通用户进行操作。用户通过文件名即可找到具体的数据而不用关心数据是怎么存储的。

本地文件系统

linux 常用 exts 系列,windows 使用 NTFS。只要搞清楚文件系统的作用,它们只不过换了个名字而已。

分布式文件系统

分布式文件系统最大的特点是多个客户端可以访问相同的服务端。 NFS(网络文件系统) 也属于分布式文件系统,用户可以像访问本地硬盘一样访问共享计算机上的文件。

对象存储服务(Object Storage Service,OSS)

在项目开发过程中,我们会产生大量的对象数据,包括:

Read more

K8S_应用_部署MongoDB复制集


MongoDB集群部署模式

mongodb采用副本集方式部署(3副本 1primary 2 secondary)

使用kubernetes的mongo集群应考虑需要连接mongo的服务均部署在kubernetes内部,才能通过coreDNS域名或端口访问。

整体架构如下图所示:

使用statefulset模式部署mongod集群具体实现

集群创建mongo service account

$ cat mongo-rbac.yaml 
apiVersion: v1
kind: ServiceAccount
metadata:
  name: mongo
  namespace: mongo
-

Read more

K8S_基础设施_YAML模板


概述

该文档主要用于记录本人常用的Yaml文件模板

Kubernetes

RBAC

---
apiVersion: v1  # 该模板与template-deployment和template-pv并不关联
kind: ServiceAccount  # 创建一个serviceaccount命令,每个命名空间被创建时其实都会有一个default的serviceaccount.
metadata:
  name: prometheus  # 令牌的名称,该名称是需要被statefulset或者deployment引用的,与containers同级,表达为serviceAccountName: p

Read more

Sonarqube_实现项目质量管理


概述

SonarQube是一种自动代码审查工具,用于检测代码中的错误、漏洞和代码异味。 该文档选用sonarqube长期更新版本8.9.6 LTS。版本推荐与文章示例一致,作者尝试过使用8.9.8-community版本,无法正常启动。 数据库选用postgresQL,因为后续版本Sonarqube不再支持Mysl。 参考Sonarqube官方文档

部署

整个项目完全采用kubernetes进行部署,根据列出的Yaml文件及步骤,调整镜像及持久卷供应就可以实现部署。

目录结构

$ ll /usr/local/wlhiot/container/kubernetes/basic/sonarqube

Read more

Jenkins_CICD_实现CI/CD流程


部署

所有服务均以docker或者kubernetes运行。

$ docker run -d --name jenkins-server -p 8005:8080 -v /usr/local/wlhiot/mount/jenkins:/var/jenkins_home 192.168.254.29:8001/library/jenkins:2.289.3

在宿主机创建1000权限的目录并挂载,正常运行后浏览器输入127.0.0.1:8005访问Jenkins服务。

查看宿主机的/usr/local/wlhiot/mount/jenkins/secrets/initialAdminPassw

Read more