k8s-nginx实战部署1
yaml 资源清单
deploy.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: api-proxy-config-offline-map
data:
api_proxy.conf: |
server {
listen 80;
server_name offline-map;
client_max_body_size 10m;
# 配置前端静态文件目录
location / {
index index.html index.htm;
root /usr/share/nginx/html;
try_files $uri $uri/ /index.html;
}
}
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: offline-map
labels:
k8s-app: offline-map
spec:
replicas: 1
selector:
matchLabels:
k8s-app: offline-map
template:
metadata:
name: offline-map
labels:
k8s-app: offline-map
spec:
nodeName: k8s-master
containers:
- name: offline-map
image: '{IMAGE}'
imagePullPolicy: IfNotPresent
volumeMounts:
- name: nginx-config
mountPath: /etc/nginx/conf.d
volumes:
- name: nginx-config
configMap:
name: api-proxy-config-offline-map
---
apiVersion: v1
kind: Service
metadata:
labels:
name: offline-map
name: offline-map
spec:
ports:
- name: port80
# 将Service的端口号映射到每个Node的一个端口号上,
# 这样集群中的任意Node都可以作为Service的访问入口地址,即NodeIP:NodePort
nodePort: 32001 # 向外暴露的端口
port: 80 # svc端口
protocol: TCP
targetPort: 80 # pod端口
selector:
k8s-app: offline-map
sessionAffinity: None
type: NodePort
run_deploy.sh
#!/bin/bash
# @zcf: 执行脚本文件需要和对应的k8s编排模板放到同一目录下才能生效!!!
path=$(cd `dirname $0`;pwd)
cd ${path}
res=0
# 镜像名
image_name=$1
echo "cert_view_image="${image_name}
sed -i "s@{IMAGE}@$image_name@g" deploy.yaml
r=$?
res=`expr ${res} + ${r}`
echo "$res"
# 执行部署
if [ $res -ne 0 ]; then
exit 1
fi
.gitlab-ci.yml
variables:
SOFT_VERSION: ${SOFT_VERSION}
DOCK_HUB: 192.168.2.103:80
DOCK_HUB_USER: admin
DOCK_HUB_PASSWD: '123456'
HUB_GROUP: 512cert
HUB_GROUP_PASSWD: 1234QWERasdf
LAY_OUT_URL: ${DOCK_HUB}/512cert
TEST_INFRA_NAMESPACE: ${TEST_INFRA_NAMESPACE}
PROD_INFRA_NAMESPACE: ${PROD_INFRA_NAMESPACE}
stages:
- build
- test-deploy
- prod-deploy
before_script:
# npm install的依赖配置
- git config --global url."https://".insteadOf git://
- docker login -u ${DOCK_HUB_USER} -p${DOCK_HUB_PASSWD} http://${DOCK_HUB}
# TAG版本号
- export TM=`date +%y%m%d%H%M`
- export TAG="${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA:0:8}-build${CI_PIPELINE_ID}-${SOFT_VERSION}"
# 打包镜像
build:
stage: build
tags:
- baler #这里写 runner 的标签名 ,按标签名选择打包的服务器
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: on_success
- if: $CI_PIPELINE_SOURCE != "schedule"
when: manual
artifacts:
paths:
- scripts/k8s/deploy.yaml
script:
- docker build -t ${LAY_OUT_URL}/offlinemap:${TAG} .
- docker push ${LAY_OUT_URL}/offlinemap:${TAG}
- scripts/k8s/run_deploy.sh ${LAY_OUT_URL}/offlinemap:${TAG}
- docker rmi ${LAY_OUT_URL}/offlinemap:${TAG}
# 部署微服务
test-deploy:
stage: test-deploy
tags:
- test-env #这里写k8s主节点的runner的标签名,下面的script命令就会在主节点执行
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: on_success
- if: $CI_PIPELINE_SOURCE != "schedule"
when: manual
script:
- kubectl apply -f scripts/k8s/deploy.yaml -n ${TEST_INFRA_NAMESPACE}
.gitlab-ci.yml 中的 tags 要和 runner中的标签对应上

k8s-nginx实战部署1的更多相关文章
- Nginx实战部署常用功能演示(超详细版),绝对给力~~~
前言 上次分享了一些开发过程中常用的功能,但如果到真实环境中,其实还需要一些额外的配置,比如说跨域.缓存.配置SSL证书.高可用等,老规矩,还是挑几个平时比较常用的进行演示分享.上篇详见Nginx超详 ...
- K8S(13)监控实战-部署prometheus
k8s监控实战-部署prometheus 目录 k8s监控实战-部署prometheus 1 prometheus前言相关 1.1 Prometheus的特点 1.2 基本原理 1.2.1 原理说明 ...
- 基于k8s集群部署prometheus监控ingress nginx
目录 基于k8s集群部署prometheus监控ingress nginx 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署pro ...
- k8s经典实战—搭建WordPress
k8s经典实战—搭建WordPress说明:需要在k8s上部署lnmp环境,建议跟着步骤来端口最好不要改,希望你也能搭建成功,完成这个搭建后你对Kubernetes的技术基本上是入门了.首先看下效果图 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...
- 在nginx上部署vue项目(history模式)--demo实列;
在很早之前,我写了一篇 关于 在nginx上部署vue项目(history模式) 但是讲的都是理论,所以今天做个demo来实战下.有必要让大家更好的理解,我发现搜索这类似的问题还是挺多的,因此在写一篇 ...
随机推荐
- 学习蓝图+行为树实现AI角色的跟随操作
跟随B站视频学习 准备工作 一个角色蓝图类用来设置AI角色,一个Blackboard--AI的大脑,一个AITree--AI的行为控制,一个AIController蓝图类--定义AI的控制器. 是否发 ...
- OGNL表达式注入分析
OGNL基础 依赖 <dependency> <groupId>ognl</groupId> <artifactId>ognl</artifact ...
- 小师妹学JavaIO之:File文件系统
目录 简介 文件权限和文件系统 文件的创建 代码中文件的权限 总结 简介 小师妹又遇到难题了,这次的问题是有关文件的创建,文件权限和文件系统相关的问题,还好这些问题的答案都在我的脑子里面,一起来看看吧 ...
- 小师妹学JavaIO之:try with和它的底层原理
目录 简介 IO关闭的问题 使用try with resource try with resource的原理 自定义resource 总结 简介 小师妹是个java初学者,最近正在学习使用java I ...
- OpenHarmony——内核对象队列之算法详解(下)
前言 OpenAtom OpenHarmony(以下简称"OpenHarmony") LiteOS-M 内核是面向 IoT 领域构建的轻量级物联网操作系统内核,具有小体积.低功耗. ...
- SQL(Structured Query Language)简介和常见 SQL 命令示例
简介 SQL(Structured Query Language)是一种用于访问和操作关系型数据库的标准语言.它是一个功能强大的语言,用于执行各种数据库操作,包括检索数据.插入新记录.更新记录.删除记 ...
- Python 中的数字类型与转换技巧
Python中有三种数字类型: int(整数) float(浮点数) complex(复数) 当您将值分配给变量时,将创建数字类型的变量: 示例:获取您自己的Python服务器 x = 1 # int ...
- 异步、多线程、Java爬取某网站图片
一.网页图片爬取类 package com.yhyl.utils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import or ...
- HarmonyOS实现表单页面的输入,必填校验和提交
一. 样例介绍 本篇Codelab基于input组件.label组件和dialog组件,实现表单页面的输入.必填校验和提交: 1. 为input组件设置不同类型(如:text,email,date等 ...
- HarmonyOS Lottie组件,让动画绘制更简单
原文:https://mp.weixin.qq.com/s/eC7g9ya4f_2AiNgteiyXcw,点击链接查看更多技术内容. 动画是UI界面的重要元素之一,精心设计的动画能使UI界面更直观,有 ...