Kubernetes(K8S)快速搭建typecho个人博客

这篇具有很好参考价值的文章主要介绍了Kubernetes(K8S)快速搭建typecho个人博客。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Kubernetes(K8S)快速搭建typecho个人博客

1、准备工作

K8S集群环境,搭建教程参考腾讯云Lighthouse组建跨地域Kubernetes集群
K8S集群面板,搭建教程参考Kubernetes集群管理面板的安装及使用 - 青阳のblog-一个计算机爱好者的个人博客 (hipyt.cn)

注意

如果没有集群或者服务器不够可以通过传送门新购。

腾讯云轻量应用服务器购买地址:传送门

2、部署说明

说明:本文的教程是基于Kubernetes集群的,搭建了kuboard管理面板,之后在进行搭建typecho博客的教程。

本文使用的对应docker镜像的地址如下:
MySQL:mysql - Official Image | Docker Hub
typecho:rehiy/typecho - Docker Image | Docker Hub

3、创建mysql数据库

3.1 mysql配置文件

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: &name mysql   # Deployment的标签,用于标识资源为mysql应用程序
  name: *name  # Deployment的名称为mysql
  namespace: default  # Deployment所在的命名空间为default
spec:
  replicas: 1  # Deployment副本数量为1
  selector:  # 标签选择器,选择包含标签app:mysql的资源
    matchLabels:
      app: *name
  template:  # Pod的模板,用于选择或创建Pod
    metadata:  # Pod的元数据
      labels:
        app: *name
    spec:
      affinity:  # Pod亲和性设置
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchFields:
                  - key: metadata.name
                    operator: In
                    values:
                      - vm-4-13-ubuntu  # 选择节点名称为vm-4-13-ubuntu的节点作为部署目标
      containers:  # 容器定义
      - name: *name  # 容器的名称为mysql
        image: mysql:latest  # 使用最新版的MySQL镜像
        ports:  # 容器端口映射
        - containerPort: 3306  # 将容器的3306端口暴露出来
        env:  # 环境变量设置
        - name: MYSQL_ROOT_PASSWORD  # MySQL的root用户密码
          value: typecho@123
        - name: MYSQL_DATABASE  # MySQL数据库名称
          value: typecho
        - name: MYSQL_USER  # MySQL用户名
          value: typecho
        - name: MYSQL_PASSWORD  # MySQL用户密码
          value: typecho@123
        volumeMounts:  # 容器的卷挂载设置
        - name: db  # 指定卷的名称为db
          mountPath: /var/lib/mysql  # 将卷挂载到容器的/var/lib/mysql路径下
      volumes:  # 卷定义
      - name: db  # 卷的名称为db
        hostPath:
          path: /var/lib/mysql  # 指定主机上的路径/var/lib/mysql作为卷的路径

---

apiVersion: v1
kind: Service
metadata:
  name: mysql  # Service的名称为mysql
  namespace: default  # Service所在的命名空间为default
spec:
  type: ClusterIP  # Service类型为ClusterIP,内部集群使用
  selector:
    app: mysql
  ports:
  - name: db-port
    protocol: TCP
    port: 3306  # Service的端口号为3306
    targetPort: 3306  # Service转发流量到Pod的3306端口


3.2使用配置文件创建mysql服务

Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生
Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生
Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生
把上面的yaml配置修改之后复制粘贴到这里直接提交确定。
Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生
这样就是成功搭建了mysql服务,点击进去可以看到具体信息。

4、创建typecho

4.1 mysql配置文件

kind: Deployment  # 创建Deployment资源
apiVersion: apps/v1
metadata:
  name: &name myblog  # 定义名为myblog的标量锚点,值为"myblog"。并将锚点引用到name字段中
  namespace: default
  labels:
    app: *name  # 将锚点引用到app标签的值上
spec:
  selector:
    matchLabels:
      app: *name  # 根据app标签选择匹配的Pod
  template:
    metadata:
      labels:
        app: *name  # 在Pod模板中使用app标签,并引用锚点
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchFields:
                  - key: metadata.name
                    operator: In
                    values:
                      - vm-4-13-ubuntu  # 选择节点名称为vm-4-13-ubuntu的节点作为部署目标
      containers:
        - name: typecho  # 定义一个名为typecho的容器
          image: rehiy/typecho  # 使用rehiy/typecho镜像
          ports:
            - containerPort: 80  # 容器暴露的端口号为80
            - containerPort: 443  # 容器暴露的端口号为443
          volumeMounts:
            - name: *name  # 引用锚点指定的卷名
              subPath: usr  # 指定挂载到容器的子路径为usr
              mountPath: /var/www/default/usr  # 将卷挂载到容器的/var/www/default/usr路径下
      volumes:
        - name: *name  # 引用锚点指定的卷名
          hostPath:
            path: /srv/myblog  # 指定主机上的路径/srv/myblog作为卷的路径
            type: DirectoryOrCreate  # 如果路径不存在,则创建目录

---

kind: Service  # 创建Service资源
apiVersion: v1
metadata:
  name: &name myblog  # 引用锚点指定的名称
  namespace: default
  labels:
    app: *name  # 引用锚点指定的标签值
spec:
  selector:
    app: *name  # 根据app标签选择匹配的Pod
  ports:
    - name: http  # 定义名为http的端口
      port: 80  # Service监听的端口号为80
      targetPort: 80  # Service转发流量到Pod的端口号为80
    - name: https  # 定义名为https的端口
      port: 443  # Service监听的端口号为443
      targetPort: 443  # Service转发流量到Pod的端口号为443

---

kind: Ingress  # 创建Ingress资源
apiVersion: networking.k8s.io/v1
metadata:
  name: &name myblog  # 引用锚点指定的名称
  namespace: default
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: web,websecure  # Traefik路由入口配置
spec:
  rules:
    - host: blog.eg.cn  # 定义访问Ingress的域名
      http:
        paths:
          - path: /  # 匹配路径为/
            pathType: Prefix  # 路径类型为前缀匹配
            backend:
              service:
                name: *name  # 引用锚点指定的Service名称
                port:
                  name: http  # 引用锚点指定的端口名称
  tls:
    - secretName: default  # 使用名为default的TLS证书密钥对,用于HTTPS访问

4.2使用配置文件创建typecho博客

Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生
Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生
和创建mysql一样的方式复制修改配置文件即可成功搭建。

4、测试使用

首先把域名解析到对应的pod的ip之后,直接用域名访问。访问成功即创建博客成功,然后根据提示进行下一步安装。
提示
Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生
这里建议选择我标注出来的这个。
Kubernetes(K8S)快速搭建typecho个人博客,kubernetes,容器,云原生

5、总结

Kubernetes提供了强大的高可用性特性,它可以自动管理和调度容器实例,确保应用程序在集群中始终可用。还可以监控和自动修复故障的容器实例,提高博客的稳定性和可靠性。它的弹性伸缩的特性,可以根据负载变化自动调整程序。当博客访问量增加时,Kubernetes可以自动扩展应用程序的实例数以满足需求,并在访问量下降时自动缩减资源的使用。大家如果发现它别的特点功能可以和我讨论!或者还有什么类似的程序大家也可以分享一下!文章来源地址https://www.toymoban.com/news/detail-756411.html

到了这里,关于Kubernetes(K8S)快速搭建typecho个人博客的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Kubernetes (K8S) 3 小时快速上手 + 实践

    https://k8s.easydoc.net/docs/dRiQjyTY/28366845/6GiNOzyZ/nd7yOvdY#nav_3 2.1.1 凭证问题 2.1.2 踩坑 问题1:初始化集群控制台 Control plane 解决: 问题2:把工作节点加入集群(只在工作节点跑) 只是一个 K8S 集群模拟器,只有一个节点的集群,只为测试用,master 和 worker 都在一起。 2.3.1 安装(在

    2024年01月18日
    浏览(45)
  • kubeadm搭建kubernetes(k8s)

    节点 IP 安装软件 master(2C/4G,cpu核心数要求大于2) 192.168.174.15 docker、kubeadm、kubelet、kubectl、flannel node01(2C/2G) 192.168.174.18 docker、kubeadm、kubelet、kubectl、flannel node02(2C/2G) 192.168.174.19 docker、kubeadm、kubelet、kubectl、flannel Harbor节点(hub.exo.com) 192.168.174.16 docker、docker-compose、

    2024年02月09日
    浏览(43)
  • Containerd+Kubernetes搭建k8s集群

    视频教程地址:https://space.bilibili.com/3461573834180825/channel/seriesdetail?sid=3316691 之前写了一篇基于docker安装kubernetes的文章,这篇文档我们来使用containerd来安装kubernetes,相较于docker,containerd运行容器的时候效率更高,并且可以兼容docker镜像。基于docker安装kubernetes的文章地址:ht

    2024年02月07日
    浏览(46)
  • kubernetes(K8S)学习(一):K8S集群搭建(1 master 2 worker)

    kubernetes官网 :https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl GitHub :https://github.com/kubernetes/kubeadm 本文 :使用kubeadm搭建一个3台机器组成的k8s集群,1台master节点,2台worker节点。 由于k8s安装较麻烦,为防止出现其他异常,特此

    2024年04月09日
    浏览(68)
  • Kubernetes技术--使用kubeadm快速部署一个K8s集群

    这里我们配置一个 单master集群 。( 一个Master节点,多个Node节点 ) 1.硬件环境准备 一台或多台机器,操作系统 CentOS7.x-86_x64 。这里我们使用安装了CentOS7的三台虚拟机 硬件配置 : 2GB或更多RAM , 2个CPU或更多CPU , 硬盘30GB或更多 2.主机名称和IP地址规划 3. 初始化准备工作 (1).关

    2024年02月10日
    浏览(58)
  • k8s(Kubernetes)中yaml文件快速阅读理解

    简言         k8s yaml中文件内容一般有kind类型之分,每种类型有不同的功能(一般用---符号隔开) 常见的kind类型:         (1)Endpoints:Endpoints可以把外部的链接到k8s系统中(可以理解为引用外部资源,如将一个外部mysql连接到k8s中)         (2)Service:部署一

    2024年02月21日
    浏览(45)
  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要针对上篇文章的单 master 节点的 K8s 集群上搭建多 master 节点集群 和 LB 负载均衡服务器。 Kubernetes(K8S)集群搭建基础入门教程 虚拟机 IP 地址: IP 操作系统 主机名称 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    浏览(52)
  • Kubernetes(k8s)上搭建nacos集群

    你需要准备一个Kubernetes集群,如图我的集群已经准备完毕: nacos可以将配置文件存储到数据库当中,所以我们要先准备一个拥有nacos数据表结构的数据库,这样的数据库镜像我已经准备好了,当然你也可以自己制作这个镜像: 我之前写过一篇Kubernetes上安装数据库的文章:h

    2024年02月03日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包