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来实战下.有必要让大家更好的理解,我发现搜索这类似的问题还是挺多的,因此在写一篇 ...
随机推荐
- RelationNet++:基于Transformer融合多种检测目标的表示方式 | NeurIPS 2020
论文提出了基于注意力的BVR模块,能够融合预测框.中心点和角点三种目标表示方式,并且能够无缝地嵌入到各种目标检测算法中,带来不错的收益 来源:晓飞的算法工程笔记 公众号 论文: RelationN ...
- KingbaseES 配置 Hugepage
前言 大页的作用是为了提升内存管理的效率,减少内存管理资源消耗(节省pagetable的开销),特别是对于大内存的情况,同时,由于hugepage相对与4k的页面,它更不容易被交换出内存,因此,它的作 ...
- JDBC复习:创建MySQL数据表
1 try { 2 conn=JDBCUtil.getConnection(); 3 preparedStatement = conn.prepareStatement(DROP_TABLE_1); ...
- 面试官:如何搭建Redis集群?
Redis 集群(Redis Cluster)是 Redis 3.0 版本推出的 Redis 集群方案,它将数据分布在不同的服务区上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服 ...
- OpenHarmony 3.1 Release版本关键特性解析——ArkUI框架又有哪些新增能力?
ArkUI 是一套 UI 开发框架,它提供了开发者进行应用 UI 开发时所必须的能力.随着 OpenAtom OpenHarmony(以下简称"OpenHarmony") 3.1 ...
- 预约直播|3月30日下周四,应用促活大揭秘,快速提升DAU
[导读] 日常运营过程中,消息推送是App触达用户的常用手段,无论是新功能的通知,还是活动的提醒,都可以通过推送告知用户.千人千面的个性化推送,对于提升用户粘性.用户转化等指标都具有明显正向效果.越来 ...
- 记一次php反序列化漏洞中的POPchain和POC构造实战
来自于橙子科技反序列化靶场 源代码如下: <?php //flag is in flag.php highlight_file(__FILE__); error_reporting(0); cl ...
- mybatis plugin源码解析
概述 Plugin,意为插件,是mybatis为开发者提供的,对方法进行自定义编程的手段.其中用到了动态代理.反射方法,通过指定需要增强的对象与方法,进行程序编写. 核心类 主要涉及几个核心类:Int ...
- WPF 像CSS一样使用 Font Awesome 图标字体
WPF 像CSS一样使用 Font Awesome 图标字体 编写目的 WPF中使用这种图标字体不免会出现可读性差的问题,现阶段网络上有的大部分实现方式都是建立枚举,我感觉这样后续维护起来有些麻烦,需 ...
- HarmonyOS应用性能与功耗云测试
性能测试 性能测试主要验证HarmonyOS应用在华为真机设备上运行的性能问题,包括启动时长.界面显示.CPU占用和内存占用.具体性能测试项的详细说明请参考性能测试标准. 性能测试支持Phone和TV ...