k8s实战--edusoho平台创建(代码片段)

author author     2022-12-20     143

关键词:

k8s实战--edusoho平台创建

  1. 基本信息说明
    使用kubeadm方式安装kubernetes
    Kubernetes集群添加/删除Node
    Kubernetes Dashboard1.8.3部署
    k8s原生的集群监控方案(Heapster+InfluxDB+Grafana)
  2. 项目地址
    k8s-edusoho平台创建
  3. 镜像下载
    如上面的项目地址无法使用,请使用下面链接下载相应镜像
    docker pull wutengfei/lnmp-nginx (构建LNMP平台镜像--nginx,nginx版本:nginx/1.13.0)
    docker pull wutengfei/lnmp-php (构建LNMP平台基础镜像php,php的版本:PHP 7.1.5)
    docker pull wutengfei/mysql (构建LNMP平台的基础镜像--mysql,mysql版本是:mysql:5.6)
  4. 项目文件结构和YAML文件
    (1)项目文件结构
    # pwd
    /data
    # tree -L 3
    .
    ├── mysql
    │?? ├── conf
    │?? │?? └── my.cnf
    │?? └── data
    ├── nginx
    │?? ├── conf
    │?? │?? └── nginx.conf
    │?? ├── edusoho
    │?? │?? ├── api
    │?? │?? ├── app
    │?? │?? ├── bootstrap
    │?? │?? ├── plugins
    │?? │?? ├── src
    │?? │?? ├── vendor
    │?? │?? ├── vendor_user
    │?? │?? └── web
    │?? └── log
    │??     └── error.log
    ├── php
    │?? ├── log
    │?? │?? └── php-fpm.log
    │?? ├── php-fpm.conf
    │?? ├── php.ini
    │?? └── www.conf

(2)Pod的yaml文件

apiVersion: v1
kind: Pod
metadata:
  name: lamp-edusoho
  labels:
    app: lamp-edusoho
restartPolicy: Always
spec:
  containers:
  - name: nginx
    abels:
      app: lamp-nginx
    image: dockerhub.datagrand.com/global/nginx:v1
    ports:
    - containerPort: 80
    volumeMounts:
      - name: datadir
        mountPath: "/var/log/nginx/error.log"
        subPath: ./nginx/log/error.log
      - name: datadir
        mountPath: "/etc/nginx/nginx.conf"
        subPath: ./nginx/conf/nginx.conf
      - name: datadir
        mountPath: "/usr/share/nginx/html"
        subPath: ./nginx/edusoho
  - name: php
    image: dockerhub.datagrand.com/global/php:v1
    ports:
    - containerPort: 9000
    volumeMounts:
      - mountPath: /usr/local/php/etc/php-fpm.conf
        name: datadir
        subPath: ./php/php-fpm.conf
      - mountPath: /usr/local/php/etc/php-fpm.d/www.conf
        name: datadir
        subPath: ./php/www.conf
      - mountPath: /usr/local/php/etc/php.ini
        name: datadir
        subPath: ./php/php.ini
      - mountPath: /usr/local/php/var/log/php-fpm.log
        name: datadir
        subPath: ./php/log/php-fpm.log
      - mountPath: /usr/share/nginx/html
        name: datadir
        subPath: ./nginx/edusoho
  - name: mysql
    image: dockerhub.datagrand.com/global/mysql:5.6
    ports:
    - containerPort: 3306
    env:
      - name: MYSQL_ROOT_PASSWORD
        value: "123456"
      - name: MYSQL_DATABASE
        value: "edusoho"
      - name: MYSQL_USER
        value: "edusoho"
      - name: MYSQL_PASSWORD
        value: "edusoho"
    args: [‘--character-set-server=utf8‘]
    volumeMounts:
      - name: datadir
        mountPath: "/var/lib/mysql"
        subPath: ./mysql/data
      - name: datadir
        mountPath: "/etc/my.cnf"
        subPath: ./mysql/conf/my.cnf
  volumes:
  - name: datadir
    persistentVolumeClaim:
      claimName: nfs-pvc

(3)PV的yaml文件

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 4Gi
  accessModes:
    - ReadWriteMany
  nfs:
    server: 192.168.246.168  ##NFS服务器的ip地址
    path: "/data"  ##NFS服务器上的共享目录

(4)PVC的yaml文件

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: ""
  resources:
    requests:
      storage: 3Gi

(5)Service的yaml文件

apiVersion: v1
kind: Service
metadata:
  name: edusoho
  labels:
    app: edusoho
spec:
  type: NodePort 
  ports:
  - port: 80
    nodePort: 32756
  selector:
    app: lamp-edusoho

(6)使用命令汇总

查看Pod
kubectl get po -o wide
查看Service
kubectl get svc
进入容器内部某个应用,如这里的nginx
kubectl exec -it lamp-edusoho -c nginx /bin/bash

(7)访问安装Edusoho平台

http://192.168.246.168:32756/install/start-install.php
说明:这里的192.168.246.168是kubernetes的node节点IP,32756是Service中定义的nodePort。

云原生之kubernetes实战在k8s环境下部署spark分布式计算平台(代码片段)

【云原生之kubernetes实战】在k8s环境下部署Spark分布式计算平台一、Spark介绍1.Spark简介2.Spark作用二、检查本地集群状态1.检查工作节点状态2.检查k8s版本二、安装helm工具1.下载helm软件包2.解压压缩包3.复制二进制文件4.检查helm版本5.... 查看详情

云原生之kubernetes实战在k8s集群下部署weavescope监控平台(代码片段)

【云原生之kubernetes实战】在k8s集群下部署WeaveScope监控平台一、WeaveScope介绍1.WeaveScope简介2.WeaveScope的特点3.WeaveScope的组成二、检查本地kubernetes集群状态1.检查工作节点状态2.检查系统pod状态三、安装nfs共享存储1.安装nfs2.创建共享... 查看详情

k8s实战入门(代码片段)

K8S实战入门Namespace概述应用示例Pod概述语法及应用示例语法:创建并运行Pod语法:查询所有Pod的基本信息语法:查看Pod的详细信息语法:Pod的访问语法:删除指定的Pod命令式对象配置Label概述语法及应用示例命... 查看详情

linux12k8s-->05实战入门(代码片段)

...人员的作用2、对于运维人员1、对于运维人员的作用三、实战入门k8s中的名称空间(命名空间)1、namespace1、**查看**2、**创建**3、**删除**4、**配置方式**2、Pod**1、创建并运行**2、**查看pod信息**3、**访问Pod**4、**删除指定Po... 查看详情

云原生|k8s系列第3篇:实战kubectl创建deployment部署应用(代码片段)

本期文章是K8s第3篇,主要是实战Kubectl创建Deployment部署应用。通过本期文章:我们将学习创建在Kubernetes集群上运行应用程序的Deployment所需的最常见的Kubectl命令。在前期的文章中,已经介绍了一些云原生入门的知识及... 查看详情

k8s实战一:基本概念与命令(代码片段)

1:NamesSpace:名称空间用来隔离资源不隔离网络    常用命令:#创建名称空间kubectlcreatenshello#删除名称空间kubectldeletenshello#查看集群命名空间kubectlgetns#通过配置文件创建:vimhello.yaml添加如下内容,然后运行kubectlapply-fh... 查看详情

kubernetes企业项目实战04基于k8s构建efk+logstash+kafka日志平台(上)(代码片段)

目录一、日志对我们来说到底重不重要?日志打印的常见级别二、常见的日志收集方案2.1EFK2.2ELKStack2.3 ELK+filebeat2.4其他方案三、EFK组件详细介绍 3.1Elasticsearch组件介绍3.2Filebeat组件介绍1)Flebeat和Beat关系2)Filebeat... 查看详情

将本地项目上传gitee实战(代码片段)

将本地项目上传gitee实战一、git的本地初始化操作1.配置本地git相关信息2.查看git配置信息2.创建本地仓库1.创建工作区2.将项目文件保存在暂存区3.将暂存区文件保存在本地仓库二、连接到远程仓库1.连接远程仓库2.查看连接状态三... 查看详情

(六)从零开始搭建k8s集群——使用kubesphere管理平台创建mysql数据库容器服务(代码片段)

前言KubeSphere管理平台是k8s容器化服务的一个界面操作平台。本节我们通过KubeSphere平台完成一个mysql有状态服务的创建,从而简化我们使用k8s命令行工具kubectl实现应用服务的创建。正文①获取kubesphere登录地址及账号密码k8s集... 查看详情

云原生之kubernetes实战在k8s集群下搭建gitlab(代码片段)

【云原生之kubernetes实战】在k8s集群下搭建gitlab一、gitlab介绍1.gitlab简介2.gitlab的特点3.github和gitlab区别二、检查本地k8s集群状态三、安装nfs共享存储1.安装nfs2.创建共享目录3.配置共享目录4.使配置生效5.重启nfs相关服务①设置nfs服... 查看详情

云原生之kubernetes实战在k8s环境下部署kubegems云管理平台

【云原生之kubernetes实战】在k8s环境下部署KubeGems云管理平台一、KubeGems介绍1.KubeGems简介2.KubeGems特点3.KubeGems产品生态二、检查本地k8s环境1.检查工作节点状态2.检查系统pod状态三、安装KubeGemsInstaller控制器1.KubeGemsInstaller介绍2.创建... 查看详情

(八)从零开始搭建k8s集群——使用kubesphere管理平台创建一个高可用的nacos(2.0.4)集群服务(代码片段)

...据存储使用mysql数据库存储。话不多说,开始我们的实战教程。关于KubeSphere管理平台及k8s集群的搭建请参考我往期的博客内容。正文①本地下载nacos安装包获取nacos的配置文件、数据库脚本文件,这里以nacos2.0.4版本为例地... 查看详情

云原生之kubernetes实战在k8s环境下部署kubegems云管理平台

【云原生之kubernetes实战】在k8s环境下部署KubeGems云管理平台一、KubeGems介绍1.KubeGems简介2.KubeGems特点3.KubeGems产品生态二、检查本地k8s环境1.检查工作节点状态2.检查系统pod状态三、安装KubeGemsInstaller控制器1.KubeGemsInstaller介绍2.创建... 查看详情

k8s自定义controller三部曲之一:创建crd(customresourcedefinition)(代码片段)

...ntroller三部曲》系列会逐步完成一次完整的自定义controller实战;实战概要整个三部曲的目标如下:创建自定义API对象(CustomResourceDefinition),名为Student;用代码生成工具生成i 查看详情

云原生之kubernetes实战在k8s集群下部署wordpress(代码片段)

【云原生之kubernetes实战】在k8s集群下部署wordpress一、wordpress介绍1.wordpress简介2.wordpress的优点3.wordpress使用场景二、检查本地kubernetes集群状态三、配置nfs共享存储1.安装nfs2.创建共享目录3.配置共享目录4.使配置生效5.重启nfs相关服... 查看详情

运维实战kubernetes(k8s)之pod的建立(代码片段)

运维实战kubernetes(k8s)之pod的建立1.Pod管理2.资源清单3.Pod生命周期4.控制器1.Pod管理Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。一个pod类似一个... 查看详情

云原生之kubernetes实战部署k8s集群管理平台wayne

【云原生之kubernetes实战】部署k8s集群管理平台Wayne一、Wayne平台介绍1.Wayne简介2.Wayne特点3.Wayne架构二、检查本地docker状态1.检查docker版本2.检查docker状态三、安装docker-compose1.安装docker-compose2.给docker-compose文件添加执行权限3.查看doc... 查看详情

k8s学习-ingress(安装模板创建删除)(代码片段)

...ff1f;使用helm安装Ingress下载、安装helm下载、安装ingress模板实战创建删除参考什么是Ingress?Ingress和之前提到的Service、Deployment一样,也是一个k8s的资源类型,ingress用于实现用域名的方式访问k8s内部应用。Ingress可以提供... 查看详情