docker提交腾讯云标准模式

news2024/12/26 11:36:21

简介

我们公司的容器化标准模式,本次是以redis为例进行示范

技术要求:你会简单的docker容器打包

环境需要:docker、docker-compose、联网环境、腾讯云容器及镜像服务(公司已有TKE)

文件需要:除了你自己的Dockerfile所需要的东西外,还需要这4个定义规范的文件

docker本地容器打包,并且能够正常运行服务后,在进行如下操作

各文件介绍

注:红色标记为需要修改的

  • deploy.yaml

这个配置文件是,腾讯云上的k8s(k8s是管理docker服务的平台)配置,可修改资源大小以及名称等

apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
descheduler.alpha.kubernetes.io/evictable: 'true'
generation: 1
labels:
k8s-app: redis
qcloud-app: redis
name: redis
namespace: test_env
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: redis
qcloud-app: redis
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s-app: redis
qcloud-app: redis
spec:
containers:
- env:
- name: TZ
value: Asia/Shanghai
- name: DEBIAN_FRONTEND
value: noninteractive
image: dengtacj.tencentcloudcr.com/ test_env /redis:5.0.3
imagePullPolicy: Always
name: redis
resources:
limits:
cpu: 1000m
memory: 512Mi
requests:
cpu: 10m
memory: 50Mi
securityContext:
privileged: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: qcloud-docker-image
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30

可修改位置说明

  1. 含redis都是你的服务名称,namespace是你所做项目的命名空间,测试统一放在test_env

labels:
k8s-app: redis
qcloud-app: redis
name: redis
namespace: test_env
  1. 含redis是你的服务名称

creationTimestamp: null
labels:
k8s-app: redis
qcloud-app: redis
...
labels:
k8s-app: redis
qcloud-app: redis
spec:

  1. redis是你的服务名称,image的是腾讯云的镜像地址(命名空间/镜像名),其他的是资源配置

image: dengtacj.tencentcloudcr.com/ test_env /redis:5.0.3
imagePullPolicy: Always
name: redis
resources:
limits:
cpu: 1000m
memory: 512Mi
requests:
cpu: 10m
memory: 50Mi
  • docker-compose.yml

这个配置是,docker-compose的镜像控制配置

redis为服务名称,image为腾讯云的镜像地址(命名空间/服务名称,对应test_env/redis:5.0.3)

version: "3"
services:
redis:
image: dengtacj.tencentcloudcr.com/ test_env/redis:5.0.3
container_name: redis
build:
context: ./
  • makefile.docker

这个配置是封装docker-compose的相关指令,包含服务名redis,以及腾讯云用户的config

命名空间是项目名,用于测试的统一放在test_env下

buildall:
@docker-compose build
build:
@docker-compose build redis
pushall:
@docker-compose push
push:
@docker-compose push redis
deploy:
@kubectl --kubeconfig ~/.kube/config -n test_env apply -f deploy.yaml
@kubectl --kubeconfig ~/.kube/config -n test_env apply -f service.yaml
restart:
@kubectl --kubeconfig ~/.kube/config -n test_env rollout restart deployment redis

.kube/config的获取方式

在基本信息中,下拉找到,查看集群凭证,进去后,点击下载

得到了这个文件

将这个文件放到 ~/.kube/目录下,并且改名config

  • service.yaml

这个配置是,腾讯云服务配置,用于端口的暴露

apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: redis
qcloud-app: redis
name: redis
namespace: dahua
spec:
ports:
- name: 6379-6379-tcp
port: 6379
protocol: TCP
targetPort: 6379
selector:
k8s-app: redis
qcloud-app: redis
type: ClusterIP
status:
loadBalancer: {}

建立登陆凭证,并且登陆

  • 修改 /etc/resolv.conf

注释掉之前的,加上这个

nameserver 114.114.114.114

  • 登陆腾讯云创建容器凭证

在访问凭证页面选择地域南京1,点击新建

然后点击下载,能得到一个csv

打开csv复制登陆指令,在linux执行,则登陆完毕

出现Login Succeeded代表成功

kubectl 安装

由于在部署阶段用了kubectl命令,所以必须安装kubectl

https://blog.csdn.net/cyw8998/article/details/122946959

打包命令

登陆成功后,在当前的Dockerfile下运行执行命令

构建

make -f makefile.docker build

推送到腾讯云

make -f makefile.docker push

部署到腾讯云

写到这里了

make -f makefile.docker deploy

重启服务

make -f makefile.docker restart

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

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

相关文章

TensorFlow 基础(三)梯度和自动微分

文章目录Computing gradientsGradient tapesGradients with respect to a modelControlling what the tape watchesIntermediate resultsGradients of non-scalar targetsCases where gradients returns NoneReferencesimport numpy as np import matplotlib.pyplot as pltimpo…

【自学Python】Python三目运算符

Python三目运算符 Python三目运算符教程 Python 中没有其他语言类型的三目运算符,但是我们可以借助 if 语句实现类似的三目运算符。 Python三目运算符详解 说明 Python 的三目运算符是借助于 if 语句来实现的。 语法 True_statements if condition else Fals…

千锋教育嵌入式物联网教程之系统编程篇学习-02

目录 系统调用函数与库函数 库函数的组成 库函数与系统调用的关系 进程概述 进程的定义 进程与程序的区别 进程的状态及其转换 进程的调度机制 进程控制块 查看当前系统所有进程 进程号函数 进程创建fork函数 进程挂起 进程的等待 wait() waitpid 特殊进程 …

CPU 运行时的硬件环境详解

注:本文参考小林coding相关文章,侵权请联系 目录 1.图灵机的工作方式 2.冯诺依曼模型 3.内存 4.中央处理器 5总线 6.输入、输出设备 7.线路位宽与 CPU 位宽 代码写了那么多,你知道 a 1 2 这条代码是怎么被 CPU 执行的吗? …

TCP/IP协议族之TCP、UDP协议详解(小白也能看懂)

前言 在进行网络编程之前,我们必须要对网络通信的基础知识有个大概的框架,TCP/IP协议族涉及到多种网络协议,一般说TCP/IP协议,它不是指某一个具体的网络协议,而是一个协议族。本篇章主要针对IP协议、TCP和UDP协议记录总…

常用的代码命名方法

常见的三种命名方法1 驼峰命名法(CamelCase)驼峰命名法应该我们最常见的一个,这种命名方式使用大小写混合的格式来区别各个单词,并且单词之间不使用空格隔开或者连接字符连接的命名方式1 大驼峰命名法(UpperCamelCase&…

Mysql 基础-持续更新

去重 DISTINCT DISTINCT 关键字的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据给用户 注意点: DISTINCT 关键字只能在 SELECT 语句中使用。在对一个或多个字段去重时,DISTINCT 关键字必须在所有字段的最前…

IPv6路由协议实验配置(ospfv3、isis-ipv6、bgp4+)

目录 OSPFv3实验配置 建立OSPFv3邻居 AR1修改DR优先级 AR1引入直连路由 配置Stub区域 ISIS IPv6实验配置 建立ISIS邻居 修改AR1的DIS优先级 在AR1上配置路由泄露 BGP4实验配置 AR1与AR2、AR3建立IBGP邻居关系 AR2与AR4建立EBGP邻居关系 配置AR1为反射器 OSPFv3实验…

Android时间与服务器同步方案

转自: https://blog.csdn.net/qinci/article/details/70666631这个的吧?转发请注明来源吧?Android时间与服务器同步方法_飛舞的青春的博客-CSDN博客Android时间与服务器同步方案 在部分软件应用场景里,我们对应用时间要求非常苛刻…

mysql navicat函数_Navicat for MySQL函数高级属性

过程和函数是一组可以保存在服务器上的SQL语句。MySQL(www.formysql.com)函数高级属性主要涉及安全性,定义者,数据访问,决定性等方面的内容Navicat 函数高级属性安全性:指定用创建函数的用户权限来运行函数,或是用启用…

【C++】vector (vector的介绍及使用)

文章目录vector的介绍及使用前面我们学习了string,我们在学vector可以结合之前的理解,所以我们vector就不详细介绍了。 vector的介绍及使用 vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就…

一个没有混进大厂的普通程序员,10年真实收入变化

有人说,程序员的高收入和工作年限成正比,认为自己的薪资应该如此计算: private static boolean 计算工资() { //years工作时长(年)int years 5;while(years-- > 0){做项目();团建活动();涨工资();拿年终奖();}return 跳槽() &&…

2021年亚太杯APMCM数学建模大赛A题图像边缘分析与应用求解全过程文档及程序

2021年亚太杯APMCM数学建模大赛 A题 图像边缘分析与应用 原题再现: 随着科学技术的发展,对各种工件和零部件测量精度的要求越来越高,对测量仪器的要求也越来越高。数字图像尺寸测量仪器等各种图像测量设备目前正逐渐取代传统的手动卡尺测量…

Vue 常用内置指令

Vue 常用内置指令描述指令内容渲染指令{{}} 与 v-text覆盖面积v-text{{}}闪现问题{{}}v-textv-html属性绑定指令v-bind简写 :事件绑定指令v-on参数事件对象$event事件修饰符按键修饰符双向绑定指令v-model修饰符条件渲染指令v-show 与 v-if 的区别实现原理性能消耗举个栗子v-el…

C#构建Web服务项目实战(二)

概述本文演示了如何通过Ajax访问C# ASP.NET项目中的WebService方法(.asmx文件形式)。本文的项目配置参见前文:C#构建Web服务项目实战(一)。环境Visual Studio 2017 / VS2019C# ASP.NET Web服务Win11 / Win10类似.NET F…

由浅入深地学习指针(学习指针必看)

目录 指针初阶 指针定义 指针和指针类型 c语言的整型指针解引用与整型变量的区别 内存 指针和指针类型 指针类型的意义 野指针 规避野指针 指针运算 指针和数组 二级指针 指针数组 指针进阶 指针的概念再提起 字符指针 《剑指offer》 字符串常量: …

【基于机械臂触觉伺服的物体操控研究】UR5e运动学建模及代码实现

我的毕设题目定为《基于机械臂触觉伺服的物体操控研究》,这个系列主要用于记录做毕设的过程。 前言:UR系列是优傲公司的代表产品,也是目前比较通用的产品级机械臂。所以我打算用该机械臂进行毕设的仿真实现。关于其运动学建模,网…

【每日一题】【LeetCode】【第十二天】区域和检索 - 数组不可变

解决之路 题目描述 测试案例(部分) 第一次 emmm,说实话,一开始我还真没看懂题目是什么意思。。。。 自己按我自己理解的方式写了一下代码,用测试案例跑了下,成功了。 不过,放进去跑不通&…

VScode远程调试深度学习debug

VS Code CtrlP,在搜索框>select interpreter检查一下python环境 #查看GPU 环境;版本号 nvidia-smi.exe使用VSCode进行深度学习首先进行debug 首先要安装Remote Development个人理解可以远程打开编辑文件。 点击左下角的箭头,在对话框中…

async-excel整合站内信通知用户体验感满满

前面的文章我们讲过消息中心站内信的实现 【消息中心】 那么本章我们来说说异步导入导出完成后,如何使用消息中心站内信的功能进行通知用户业务处理完成了 在async-excel中异步逻辑处理完成后会调用一个callback方法进行回调,所以我们可以再对async-exc…