Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 prometheus 监控

这几天对开发服务器中的 k8s和相关模块 进行升级,做个记录
开发服务器(单服务器)部署 prometheus 监控

环境,与系统

系统:centos 7.6

内核: 5.1.9-1.el7.elrepo.x86_64

Kubernetes(K8s) 1.14.3

服务器IP:192.168.0.254

服务器IP 说明

如果更改了服务器IP 为其他IP,那么请全局全部替换成你改的IP
fox.风

如何安装 k8s

请看 最近写的一篇文章,

https://blog.csdn.net/fenglailea/article/details/88745642
常用 k8s 命令
https://foxwho.blog.csdn.net/article/details/92137467

服务器资源限制

对CPU,内存都做了限制,请自行针对修改

没有使用持久化存储,这里直接使用宿主机存储,如有需要,请自行增加

目录

请把项目放置到 /www/k8s/foxdev/ 目录下,所有都是基于此目录
或者请看 下面一节的 拉取代码

拉取代码

mkdir -p /www/k8s/
cd /www/k8s/

git clone https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql.git foxdev

cd foxdev

chmod +x *sh

以下是 独立部署 相关模块

k8s prometheus 独立部署

相关说明

对外端口:30909

端口:9090

prometheus/conf/prometheus-cluster.yaml 配置文件

独立部署 prometheus 操作

直接执行 根目录create.p.prometheus.start.sh 即可


./create.p.prometheus.start.sh

访问

直接用浏览器访问

http://192.168.0.254:30909

Kubernetes 编排文件

prometheus-rc.yml

apiVersion: v1
kind: ReplicationController
metadata:
#  namespace: default
  name: prometheus
  labels:
    name: prometheus
spec:
  replicas: 1
  selector:
    name: prometheus
  template:
    metadata:
      labels:
        name: prometheus
    spec:
      containers:
        - name: prometheus
          image: prom/prometheus:latest
          imagePullPolicy: IfNotPresent
          resources:
            limits:
              cpu: 150m
              memory: 256Mi
            requests:
              cpu: 100m
              memory: 128Mi
          env:
            - name: TZ
              value: Asia/Shanghai
          ports:
            - containerPort: 9090
          volumeMounts:
            - name: vol
              mountPath: /etc/prometheus/prometheus.yml
      volumes:
        - name: vol
          hostPath:
              path: /www/k8s/foxdev/prometheus/conf/prometheus-cluster.yaml
              type: File

prometheus-service.yml



apiVersion: v1
kind: Service
metadata:
#  namespace: default
  name: prometheus
  labels:
    name: prometheus
spec:
  type: NodePort
  ports:
    - port: 9090
      targetPort: 9090
      nodePort: 30909
  selector:
    name: prometheus

create.p.prometheus.start.sh

#!/usr/bin/env bash

DIR=$(pwd)


kubectl create -f  ${DIR}/prometheus/prometheus-service.yml
kubectl create -f  ${DIR}/prometheus/prometheus-rc.yml

kubectl get pod

echo -e "\n\n\n"

echo " success"

在开发服务器上部署成功,有问题的,可以联系我

源文件

https://github.com/foxiswho/k8s-nacos-sentinel-rocketmq-zipkin-elasticsearch-redis-mysql

已标记关键词 清除标记
相关推荐
课程亮点:  1、课程基于世界500强使用经验定制开发,覆盖常用的k8s知识;  2、课程涵盖了企业使用k8s中会遇到的各类问题,帮你避免了不必要的坑;  3、课程涉及的应用版本及知识均为新版,并基于官方文档进行扩展讲解;  4、课程章节安排条理分明,内容详细;  5、购买后提供知识问答、问题排查,版本更新;  6、课程采用CentOS 8Kubernetes 最新版讲解。   常见问题:  问题:课程需要的资料哪里下载?   解答:购买后私信本人,获取不定期更新的全部资料  问题:课程使用的Kubernetes版本是什么?  解答:本次课程录制时官方新发布的版本为1.17,录制过程中Kubernetes官方发布了1.18,但是在课程的第九章讲解了新发布的1.19,及kubernetes的升级,后期也将对新版就行补充。集群安装步骤适用于所有k8s版本。  1、Kubernetes带来的变革      对于开发人员     由于公司业务多,开发环境、测试环境、预生产环境和生产环境都是隔离的,而且除了生产环境,为了节省成本,其他环境可能是没有日志收集的,在没有用k8s的时候,查看线下测试的日志,需要开发或者测试人员,找到对应的机器,在找到对应的容器,然后才能查看日志,在用了k8s之后,开发和测试可以直接在k8s的dashboard到对应的namespace,即可定位到业务的容器,然后可以直接通过控制台查看到对应的日志,大大降低了操作时间。      把应用部署k8s之后,代码的发布、回滚,以及蓝绿发布、金丝雀发布等都变得特别简,不仅加快了业务代码迭代的速度,而且全程无需人工干预。目前我们使用jenkins、gitrunner进行发版或者回滚等,从开发环境到测试环境,到生产环境,完全遵守一次构建,多集群、多环境部署,通过不同的启动参数、不同的环境变量、不同的配置文件实现区分不同的环境。目前已经实现Python、Java、PHP、NodeJS、Go、.NET Core、Python等多种语言的一键式发版、一键式回滚,大大提高了开发人员的开发效率。     在使用服务网格后,开发人员在开发应用的过程中,不用再关心代码的网络部分,这些功能都被服务网格实现,让开发人员可以只关心代码逻辑部分,即可实现网络部分的功能,比如:断流、分流、路由、负载均衡、限速和触发故障等功能。      测试过程中,可能同时多套环境,当然也会需要再创建一套测试环境,之前测试环境的创建,需要找运维或者自行手工搭建。在迁移至k8s集群后,只需要在jenkins上点点鼠标即可在k8s集群上创建一套新的测试环境。     对于运维人员     如果你是一名运维人员,可能经常因为一些重复、繁琐的工作感觉厌倦。比如:这个需要一套新的测试环境,那个需要一套新的测试环境,之前可能需要装系统、装依赖环境、开通权限等等。而如今,可以直接用镜像直接部署一套新的测试环境,甚至全程无需自己干预,开发人员通过jenkins或者自动化运维平台即可一键式创建,大大降低了运维成本。     一开始,公司业务故障,可能是因为基础环境不一致、依赖不一致、端口冲突等等问题,现在实现Docker镜像部署k8s编排,所有的依赖、基础都是一样的,并且环境的自动化扩容、健康检查、容灾、恢复都是全自动的,大大减少了因为这类基础问题引发的故障。也有可能公司业务是由于服务器宕机、网络等问题,造成服务不可用,此类情况均需要运维人员及时去修复,而如今,可能在你收到告警信息的时候,k8s已经帮你恢复了。     在没有使用k8s时,业务应用的扩容和缩容,都需要人工去处理,从采购服务器、上架、到部署依赖环境,不仅需要大量的人力物力,而且非常容易在中间过程出现问题,又要花费大量的时间去查找问题。成功上架后,还需要在前端反代端添加或该服务器,而如今,可以利用k8s的弹性计算,一键式进行扩容和缩容,不仅大大提高了运维效率,而且还节省了不少的服务器资源,提高了资源利用率。     对于反代配置方面,比如可能你并不会,或者对nginx的配置规则并不熟悉,一些高级的功能你也不会实现,而如今,利用k8s的ingress即可简的实现那些复杂的逻辑。并且也不会在遇到nginx少加一个斜杠和多加一个斜杠的问题。      对于负载均衡方面,之前负载均衡可能是Nginx、LVS、HAProxy、F5等,云上可能是云服务商提供的不在均衡机制。每次添加删除节点时,都需要手动去配置前端负载均衡,手动去匹配后端节点,而如今,使用k8s内部的service可以动态发现实现自动管理节点,并且支持自动扩容缩容。之前遇到高峰流量时,经常服务器性能不够,需要临时加服务器面对高峰流量,而如今对于高性能k8s集群加上serverless,基本实现无需管理,自动扩容。     对于高可用方面,k8s天生的高可用功能,彻底释放了双手,无需再去创建各类高可用工具、检测检查脚本。k8s支持进程接口级别的健康检查,如发现接口超时或者返回值不正确,会自动处理该问题。    对于中间件搭建方面,根据定义好的资源文件,可以实现秒级搭建各类中间件高可用集群,并且支持一键式扩缩容,如Redis、RabbitMQ、Zookeeper等,并且大大减少了出错的概率。     对于应用端口方面,传统行业中,一个服务器可能跑了很多进程,每个进程都有一个端口,需要人为的去配置端口,并且还需要考虑端口冲突的问题,如果有防火墙的话,还需要配置防火墙,在k8s中,端口统一管理,统一配置,每个应用的端口都可设置成一样的,之后通过service进行负载均衡,大大降低了端口管理的复杂度和端口冲突。     无论是对于开发人员、测试人员还是运维人员,k8s的诞生,不仅减少了工作的复杂性,还减少了各种成本。上述带来的变革只是其中比较小的一部分,更多优点只有用了才能体会到。 2、Kubernetes带来的挑战      首先是对于k8s的学习本身就是很难的,概念太多,无从入手,可能学习了一个月也无法入门,甚至连集群也搭建不出来,使人望而却步。并且k8s对运维的技术能力要求比较高,已经不仅仅局限于传统运维,有时候你可能要修改业务代码等。并且需要掌握的知识也需要很多,你可能需要掌握公司所有使用到的代码,比如代码是如何进行编译的、如何正确发布、如何修改代码配置文件等,这对于运维人员,也是一种挑战。   Kubernetes之所以被叫做k8s,业界有两种说法,通俗的说法是ks之间有8个字母,另一种比较说法是k8s集群至少需要搭建8遍才能搭建成功。当然,在实际使用时,可能不止8遍。k8s的诞生,把运维从传统转变到了DevOps方向,需要面临的问题会更多,需要面临的新技术也有很多,但是当你掌握到了k8s的核心使用,就会受益终身。   本次课程是贴合生产环境,基于世界500强使用经验开发出来的课程体系,涵盖了几乎所有企业在使用k8s时会遇到的各类问题,无论是k8s安装的问题还是业务容器化及流水线设计的问题。从Docker、Kubernetes入门到Kubernetes进阶实战、权限管理、日志收集、Prometheus监控告警以及持久化存储的使用,到持续集成、持续部署、流水线的设计,每一节课都是经过生产环境的考验,都可以拿来直接用在生产环境中。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页