千家信息网

如何基于k8s的Ingress部署hexo博客

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"如何基于k8s的Ingress部署hexo博客",在日常操作中,相信很多人在如何基于k8s的Ingress部署hexo博客问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
千家信息网最后更新 2026年11月01日如何基于k8s的Ingress部署hexo博客

这篇文章主要介绍"如何基于k8s的Ingress部署hexo博客",在日常操作中,相信很多人在如何基于k8s的Ingress部署hexo博客问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何基于k8s的Ingress部署hexo博客"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

注:kuberntes版本为1.15

什么是 Ingress

Ingress 是一个提供对外服务的路由和负载均衡器,其本质是个nginx控制器服务。

k8s文档上Ingress经典数据链路图:

    internet        |   [ Ingress ]   --|-----|--   [ Services ]

对博客进行改造

构建Dockefile

先容器化整个Hexo项目,构建Dockefile,这里采用nginx + 静态资源的形式部署(主要为了节约内存CPU):

FROM nginx:1.13.0-alpineLABEL maintainer="hexo-shikanon-blog "# 装载编译后的文件对外访问COPY ./public /usr/share/nginx/html
构建Deployment

构建一个Deployment服务将其部署上kubernetes:

apiVersion: apps/v1kind: Deploymentmetadata:  name: nginx-hexo-blog-delopyment  labels:    webtype: staticblogspec:  replicas: 2  selector:    matchLabels:      webtype: staticblog  template:    metadata:      labels:        webtype: staticblog        function: blog    spec:      containers:        - name: hexo-blog          image: nginx-hexo-blog:0.0.1          ports:            - containerPort: 80
构建Service暴露服务端口

构建一个Service暴露统一的服务端口:

apiVersion: v1kind: Servicemetadata:  name: static-blogspec:  selector:    webtype: staticblog  ports:    - protocol: TCP      port: 80      targetPort: 80 # deployment的端口,

这里创建一个名称为 "static-blog" 的 Service 对象,它会将请求代理到使用 TCP 端口 targetPort,并且具有标签 "webtype: staticblog" 的 Pod 上。

查看端口信息:

$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.13.0.1 443/TCP 10d static-blog ClusterIP 10.13.83.44 80/TCP 8h

测试端口是否可以访问:

$ curl -I 10.13.83.44 HTTP/1.1 200 OK Server: nginx/1.13.0 Date: Wed, 16 Oct 2019 16:51:13 GMT Content-Type: text/html Content-Length: 71636 Last-Modified: Mon, 29 Jul 2019 19:25:29 GMT Connection: keep-alive ETag: "5d3f4829-117d4" Accept-Ranges: bytes

构建Ingress服务

最后一步,构建Ingress服务对外部提供服务和反向代理:

apiVersion: extensions/v1beta1kind: Ingressmetadata:  name: reverse-proxy  annotations:    nginx.ingress.kubernetes.io/rewrite-target: /spec:  rules:  - host: www.shikanon.com    http:      paths:        - backend:            serviceName: static-blog            servicePort: 80

完成!

构建HTTPS网站

用secret类型对象保存密钥数据

Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 ssh key,其中 ssh key 就是一个经典的应用。

Secret 参数用例:

kubectl create secret -hCreate a secret using specified subcommand.Available Commands:  docker-registry Create a secret for use with a Docker registry  generic         Create a secret from a local file, directory or literal value  tls             Create a TLS secretUsage:  kubectl create secret [flags] [options]

创建Secret加密对象:

kubectl create secret tls shikanon-ssh-key-secret --cert=/home/shikanon/web/www/ssl/cert.pem --key=/home/shikanon/web/www/ssl/private.key

修改Ingress:

apiVersion: extensions/v1beta1kind: Ingressmetadata:  name: reverse-proxy  annotations:    nginx.ingress.kubernetes.io/rewrite-target: /spec:  rules:  - host: www.shikanon.com    http:      paths:        - backend:            serviceName: static-blog            servicePort: 80  tls:  - hosts:     - www.shikanon.com    secretName: shikanon-ssh-key-secret

注:一个Ingress只能支持一个tls

到此,关于"如何基于k8s的Ingress部署hexo博客"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

服务 端口 博客 对象 学习 对外 信息 数据 更多 类型 经典 网站 代理 帮助 实用 均衡 接下来 令牌 内存 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 广东万易互联网科技有限公司惠州分公司 科技互联网项目 平安科技 互联网 互联网科技股票 润盈互联网科技 互联网科技实习生岗位职责 语蝶互联网科技有限公司 国大互联网教育科技有限公司工作 互联网公司黑科技创始人 互联网科技和法律行业 高科技互联网发展前景如何 互联网金融科技元年 互联网第三次科技革命特征 山东大美朱楼互联网科技有限公司 唯美互联网科技 互联网领先科技活动 互联网科技职业技能培训学校 杭州科技互联网公司有哪些 宁波允成互联网科技有限公司 没上市的科技互联网公司 互联网金融 科技金融 广州善班互联网科技 齐家互联网科技有限公司 中国互联网十大科技股排名 为客找房互联网科技公司怎么样 众安科技工业互联网合作 宁波跨境商互联网科技有限公司 世界互联网科技成果奖 科技信息时代互联网发展
0