项目实战:Ingress搭建Nginx+WP论坛+MariaDB

1. 网站架构


本次部署形式完全舍弃 Docker,将所有应用都置于Kubernetes,采用 Deployment 而非单 Pod 部署,稳定性得到升级。

2. 部署 MariaDB

[root@k8s-master ~]# mkdir tdr
[root@k8s-master ~]# cd tdr/

(1)定义 ConfigMap

[root@k8s-master tdr]# vim mariadb-configmap.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
        name: mariadb-configmap
data:
        USER: "wp"
        PASSWORD: "123"
        ROOT_PASSWORD: "123"
        DATABASE: "db"

(2)定义 Deployment

[root@k8s-master tdr]# vim mariadb-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
        name: mariadb-deployment
        labels:
                app: mariadb-deployment
spec:
        replicas:
        selector: 
                matchLabels:
                        app: mariadb-deployment
        template:
                metadata: 
                        labels:
                                app: mariadb-deployment
                spec:
                        containers:
                        -       name: mariadb
                                image: docker.io/library/mariadb:latest
                                imagePullPolicy: Never
                                ports:
                                -       name: mariadbport
                                        containerPort: 3306
                                envFrom:
                                -       prefix: "MARIADB_"
                                        configMapRef:
                                                name: mariadb-configmap

(3)定义 Service

[root@k8s-master tdr]# vim mariadb-service.yaml 
apiVersion: v1
kind: Service
metadata:
        name: mariadb-service
spec:
        selector:
                app: mariadb-deployment
        ports:
        -       port: 3306
                targetPort: 3306
                protocol: TCP
        type: NodePort

(4)启动 MariaDB

[root@k8s-master tdr]# kubectl create -f mariadb-configmap.yaml 
configmap/mariadb-configmap created
[root@k8s-master tdr]# kubectl create -f mariadb-deployment.yaml 
deployment.apps/mariadb-deployment created
[root@k8s-master tdr]# kubectl create -f mariadb-service.yaml 
service/mariadb-service created

[root@k8s-master tdr]# kubectl get all
NAME                                      READY   STATUS    RESTARTS       AGE
#pod信息:
pod/cluster-test-66bb44bd88-nk46t         1/1     Running   38 (14m ago)   10d
pod/mariadb-deployment-5bf6d9f98c-wt7cc   1/1     Running   0              25m
#service信息:
NAME                      TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/kubernetes        ClusterIP   10.96.0.1      <none>        443/TCP          10d
service/mariadb-service   NodePort    10.96.249.62   <none>        3306:30150/TCP   14m
#deployment信息:
NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/cluster-test         1/1     1            1           10d
deployment.apps/mariadb-deployment   1/1     1            1           25m
#replicaset信息:
NAME                                            DESIRED   CURRENT   READY   AGE
replicaset.apps/cluster-test-66bb44bd88         1         1         1       10d
replicaset.apps/mariadb-deployment-5bf6d9f98c   1         1         1       25m

[root@k8s-master tdr]# kubectl exec -it pods/cluster-test-66bb44bd88-nk46t -- bash
(08:47 cluster-test-66bb44bd88-nk46t:/) nslookup mariadb-service
Server:        10.96.0.10
Address:    10.96.0.10#53

Name:    mariadb-service.default.svc.cluster.local
Address: 10.96.249.62

3. 部署 Wrodpress

(1)定义 ConfigMap

[root@k8s-master tdr]# vim wordpress-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
        name: wordpress-config
data:
        NAME: "db"
        USER: "wp"
        PASSWORD: "123"
        HOST: "mariadb-service"

(2)定义 Deployment

[root@k8s-master tdr]# vim wordpress-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
        name: wordpress-deployment
        labels:
                app: wordpress-deployment
spec:
        replicas: 2
        selector:
                matchLabels:
                        app: wordpress-deployment
        template:
                metadata:
                        labels:
                                app: wordpress-deployment
                spec:
                        containers:
                        -       name: wp
                                image: docker.io/library/wordpress:latest
                                imagePullPolicy: Never
                                ports:
                                -       name: wordpressport
                                        containerPort: 80
                                envFrom:
                                -       prefix: "WORDPRESS_DB_"
                                        configMapRef:
                                                name: wordpress-config

(3)定义 Service

[root@k8s-master tdr]# vim wordpress-service.yaml 
apiVersion: v1
kind: Service
metadata:
        name: wordpress-service
spec:
        selector:
                app: wordpress-deployment
        ports:
        -       name: http
                port: 80
                targetPort: 80
                protocol: TCP
                nodePort: 32000
        type: NodePort

(4)启动 WordPress

[root@k8s-master tdr]# kubectl create -f wordpress-configmap.yaml 
configmap/workpress-config created
[root@k8s-master tdr]# kubectl create -f wordpress-deployment.yaml
deployment.apps/wordpress-deployment created
[root@k8s-master tdr]# kubectl create -f wordpress-service.yaml 
service/wordpress-service created
[root@k8s-master tdr]# kubectl get po
NAME                                    READY   STATUS    RESTARTS       AGE
cluster-test-66bb44bd88-nk46t           1/1     Running   38 (50m ago)   10d
mariadb-deployment-5bf6d9f98c-wt7cc     1/1     Running   0              60m
wordpress-deployment-555685954b-77wb8   1/1     Running   0              107s
wordpress-deployment-555685954b-9g8rf   1/1     Running   0              107s

(5)访问测试

访问192.168.1.110:32000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148741.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【JavaEE】——线程“饿死问题” wait notify

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;希望本文内容能够帮助到你&#xff01; 目录 引子&#xff1a; 一&#xff1a;情景引入 二&#xff1a;线程饿死问题 1&#xff1a;线程饿死 2&a…

lvgl学习笔记--基础对象1

【LVGL学习笔记】&#xff08;三&#xff09;控件使用_学习_煜个头头-GitCode 开源社区 LVGL 基础对象|极客笔记 #include "../../../lv_examples.h"void lv_ex_obj_1(void) {lv_obj_t * obj1;obj1 lv_obj_create(lv_scr_act(), NULL);lv_obj_set_size(obj1, 100, …

MySql语言操作数据库---增删改查数据库,表,数据

思维导图 SQL语言共分为四大类&#xff1a; 数据定义语言DDL:数据定义语言DDL用来创建数据库中的各种对象-----[库]、[表]、[视图]、[索引]、 数据操纵语言DML:(1) 插入&#xff1a;INSERT (2) 更新&#xff1a;UPDATE (3) 删除&#xff1a;DELETE 数据查询语言DQL:数据查询语…

Docker 付费订阅价格大幅上调,免费订阅功能受限,云计算和安全产品有调整

云计算de小白 同时&#xff0c;免费的 Docker Personal 订阅将不再包含 Build Cloud 分钟数&#xff0c;支持范围将从三个 Scout 存储库变为仅一个&#xff0c;并且仅限于一个具有 2 GB 存储空间的私有 Docker Hub 容器注册存储库。 不过&#xff0c;Docker也对云计算和安全产…

清华大学开源视频转文本模型——CogVLM2-Llama3-Caption

通常情况下&#xff0c;大多数视频数据并不附带相应的描述性文本&#xff0c;因此有必要将视频数据转换为文本描述&#xff0c;为文本到视频模型提供必要的训练数据。 CogVLM2-Caption 是一个视频字幕模型&#xff0c;用于为 CogVideoX 模型生成训练数据。 文件 使用 import i…

C语言编程中的小数(double,float)

最近看电路基础&#xff0c;第一个知识就是欧姆定律。 一、欧姆本人介绍 欧姆&#xff08;Georg Simon Ohm&#xff09;‌&#xff0c;1789年3月16日出生于德国巴伐利亚州的‌埃尔朗根&#xff0c;是一位杰出的物理学家和数学家。他最为人知的是在‌电学领域的贡献&#xff0…

动态倒计时在 Vue 3 中的实现

目录 1. Demo2. 实战Demo3. 拓展Demo 1. Demo 给一版初始的Demo&#xff0c;在给一版实战中的Demo 基本知识点&#xff1a; Vue 3 的响应式原理&#xff1a;Vue 3 使用 reactive 和 ref 创建响应式数据&#xff0c;数据的变化会自动触发视图更新setup 函数&#xff1a;Vue 3…

​智慧铜矿厂综合管控平台,智慧矿山数字孪生

随着矿山行业的不断发展&#xff0c;传统的管理方式已经无法满足现代铜矿高效、安全、环保和精细化管理的需求&#xff0c;因此&#xff0c;构建一个综合管控平台变得尤为必要。HT 铜矿综合管控平台应运而生&#xff0c;通过信息化和智能化手段&#xff0c;整合采矿、选矿、冶炼…

【包教包会】CocosCreator3.x框架——音频模块(无需导入、无需常驻节点)

下载地址&#xff1a;AudioDemo3.x: CocosCreator3.x框架——音频模块 注意事项&#xff1a; 1、gi.musicPlay、gi.soundPlay是同步函数&#xff0c;使用前必须先将音频加载到缓存 Demo通过SceneLoading实现了一个极简的Loading页面&#xff0c;将音频全部加载后进入游戏&…

Vue学习文档

文章目录 一、Vue 简介1、官网2、作者和版本3、定义4、特点5、Vue 的周边库二、Vue 安装使用1、CDN 引入2、下载后引入3、命令行工具 (CLI)三、入门案例四、MVVM模型1、MVVM 模型2、Vue 与 MVVM 模型五、Vue 基本使用1、文本插值(掌握)-text2、属性插值(掌握 )-bind3、Clas…

【Python】Spyder:科学 Python 开发环境

在数据科学和科学计算领域&#xff0c;Python 已经成为了一个不可或缺的工具。为了提高开发效率和改善编程体验&#xff0c;一个功能强大且用户友好的开发环境是必需的。Spyder&#xff08;Scientific Python Development Environment&#xff09;正是这样一个为科学计算和数据…

数据结构-线性表的单链式存储结构图解及C语言实现

概念 链式存储&#xff1a;结点在存储器中的位置是任意的&#xff0c;即逻辑相邻的数据元素在物理上不一定相邻 链式存储结构也称非顺序映像或链式映像 图解 链式存储结构中结点一般有两个部分组成&#xff0c;即数据域(data)和指针域&#xff0c;数据域是用于存放数据的&…

振弦式轴力计 轴向力仪器钢支撑轴力计 清易让选择不再迷路

产品概述 振弦式轴力计是一种用于测量轴向力的仪器。它通过测量振弦的频率变化来计算轴向力的大小。当轴向力作用在弹性元件上时&#xff0c;振弦的张力会发生变化&#xff0c;从而导致振弦的频率发生变化。电磁线圈用于驱动振弦并测量其频率。信号处理单元则用于将频率信号转…

Anthropic谋求新一轮融资 估值或达400亿美元

&#x1f989; AI新闻 &#x1f680; Anthropic谋求新一轮融资 估值或达400亿美元 摘要&#xff1a;美国AI初创公司Anthropic正在与投资者洽谈新一轮融资&#xff0c;估值可能达到300至400亿美元&#xff0c;约为今年初融资估值的两倍。Anthropic依靠其生成式AI聊天机器人Cla…

LNK2019:无法解析的外部符号 “class std::basic_ostream ...(template 的声明)

文章目录 一、问题&#xff1a;二、解决&#xff1a;1. 问题2. 解释① 类模板② 函数模板 一、问题&#xff1a; 今天在实现 vector 时&#xff0c;发现出现了一个错误&#xff1a; 它说&#xff0c;不认识 ostream&#xff0c;我在重载<< 符号时&#xff0c;使用了 ost…

7.ChatGPT与SEO - 优化内容策略【7/10】

引言 在当今的数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;已成为数字营销中不可或缺的一部分。它不仅帮助企业提高在线可见性&#xff0c;还直接影响着网站的流量、品牌知名度和最终的销售转化。SEO通过优化网站内容和结构&#xff0c;使其在搜索引擎结果…

【Python】多个dataframe存入excel的不同的sheet表里,而不会被覆盖的方法

我发现&#xff0c;我原来用的多个工作簿存入的方法&#xff0c;发现不太可行了。当使用for循环的时候&#xff0c;原来的sheet 会被新的表给覆盖&#xff0c;后来我找到一种新的方法&#xff1a; with pd.ExcelWriter(file_name ) as writer:Table.to_excel(writer, sheet_na…

JAVA无缝沟通全球国际版多语言语聊系统小程序源码

无缝沟通全球 —— 国际版多语言语聊系统 &#x1f30d;【开篇&#xff1a;跨越语言障碍&#xff0c;与世界无缝对话】&#x1f30d; 在这个全球化的时代&#xff0c;你是否渴望与世界各地的朋友无缝交流&#xff0c;却常常被语言的隔阂所困扰&#xff1f;别担心&#xff0c;今…

振弦式渗压计智慧水利工程 适用恶劣环境有保障

产品概述 振弦式渗压计适合埋设在水工建筑物和基岩内&#xff0c;或安装在测压管、钻孔、堤坝、管道或压力容器中&#xff0c;以测量孔隙水压力或液位。主要部件均采用特殊钢材制造&#xff0c;适合在各种恶劣环境中使用。特殊的稳定补偿技术使传感器具有极小的温度补偿系数。…

Adobe Photoshop 2024 v25.12 (macOS, Windows) 发布下载 - 照片和设计软件

Adobe Photoshop 2024 v25.12 (macOS, Windows) - 照片和设计软件 Acrobat、After Effects、Animate、Audition、Bridge、Character Animator、Dimension、Dreamweaver、Illustrator、InCopy、InDesign、Lightroom Classic、Media Encoder、Photoshop、Premiere Pro、Adobe XD…