docker提交腾讯云标准模式

article/2025/9/22 10:06:10

简介

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

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

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

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

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

各文件介绍

容器有2种,一种是容器镜像,所有带image的都是镜像,另一种是容器,这2个都有namespace(命名空间),注意不要写混。我这里镜像的命名空间用的是test_env,容器的是default

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

    • 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: default
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: default
  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 default apply -f deploy.yaml
@kubectl --kubeconfig ~/.kube/config -n default apply -f service.yaml
restart:
@kubectl --kubeconfig ~/.kube/config -n default rollout restart deployment redis

.kube/config的获取方式

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

得到了这个文件

将这个文件放到 ~/.kube/目录下,并且改名config(不用怀疑,这整个文件没有后缀,改完之后他就叫config)

    • service.yaml

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

apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: redis
qcloud-app: redis
name: redis
namespace: default
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

访问方式

数据库等内部容器访问方式

pod名称.命名空间:端口 只能在容器中或者容器间访问,比如我的是redis.default:6379 其他容器配置这个的地址,就可以连接

服务类修改方式

如果是服务类,如前端或者后端,则要修改服务

点击更新配置

选择主机端口访问,修改中间的主机端口,然后通过 机器ip:主机端口 访问

然后通过我们的nginx域名映射,就可以对外访问了

nginx在192.168.9.31上,配置他的config,注意不要配置错误,影响其他人的服务。

如果想保证每次不用登陆腾讯云修改,则需要修改service.yaml

例如我的腾讯云是这样的服务,对应的service.yaml就是这样的

你填写好主机端口访问之后,此时腾讯云的yaml也会被修改

点击编辑yaml进看到,yaml配置

将这一段替换你原本的yaml的spec的位置就可以了

apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: dahua-houduan
qcloud-app: dahua-houduan
name: dahua-houduan
namespace: default
spec:
clusterIP: 192.168.139.189
externalTrafficPolicy: Cluster
ports:
- name: 9999-9999-tcp
nodePort: 31210
port: 9999
protocol: TCP
targetPort: 9999
- name: 8087-8087-tcp
nodePort: 32116
port: 8087
protocol: TCP
targetPort: 8087
selector:
k8s-app: dahua-houduan
qcloud-app: dahua-houduan
type: NodePort
status:
loadBalancer: {}

测试方法

将服务设置为主机ip:端口访问。比如我的redis,我将主机端口设置为32110

主机ip是服务实例(pod)所在节点的ip

通过redis链接测试


http://chatgpt.dhexx.cn/article/tGuI3f3V.shtml

相关文章

设计模式 - 状态模式

8. 状态(State) Intent 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它所属的类。 Class Diagram Implementation 糖果销售机有多种状态,每种状态下销售机有不同的行为,状态可以发生转移&#xff0…

此页面处于怪异模式,排版布局可能会受到影响。若需要标准模式,请使用“!DOCTYPE html”。

一、报错二、原因 一、报错 此页面处于怪异模式,排版布局可能会受到影响。若需要标准模式,请使用“!DOCTYPE html”。详细了解 导致:页面打开是空的,什么内容也没有~ 二、原因 用框架渲染页面的时候,视图渲染语句漏…

HTML的标准模式与怪异模式

HTML的标准模式与怪异模式 HTML 的结构在HTML4中 DOCTYPE有三种模式标准模式与怪异模式 HTML 的结构 <html><head><meta charset"utf-8" /><title></title></head><body></body> </html>上面就是一个完整的h…

准标准模式和标准模式之间的差别-1(旧文首发)

"理论上&#xff0c;标准模式和准标准模式的区别仅在于非IE6/7浏览器对于单元格里(原文说法可能有误&#xff0c;经测试所有图片均受影响)图片布局的不同处理。同事渔隐做了细致地测试并给出了解决方案。 Update 20100203&#xff1a;发现iframe的布局也受到影响&#xff…

设计模式:(状态模式)

1.定义 在状态模式&#xff08;State Pattern&#xff09;中&#xff0c;类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中&#xff0c;我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 简单来说&#xff1a;状…

设计模式第10式:状态模式

前言 我们遇到状态机模型&#xff0c;常常会理不清“状态”和“行为”的关系。状态模式就是专门解决这个应用场景的&#xff0c;它通过改变对象内部的状态来帮助对象控制自己的行为。 正文 1、先来看一个案例 我们选取《HeadFirst 设计模式》中的糖果售卖机案例。这就是常见…

# 设计模式

设计模式 文章目录 设计模式设计模式总览单例模式类图定义特点单例模式的实现方式 工厂模式类图定义特点实现方式 抽象工厂模式类图定义特点实现方式 观察者模式类图简单理解使用场景实例代码 策略模式类图简单理解使用场景实例代码 模板方法模式类图简单理解实例代码 原型模式…

安全漏洞与网络攻击

目录 一、安全漏洞及产生原因 1. 安全漏洞概念 2. 漏洞产生的技术原因 3. 漏洞产生的经济原因 二、信息收集与分析 1. 攻击的过程 2. 信息收集&#xff1a;攻击的前奏 3. 收集什么信息 4. 信息收集与分析工具 5. 公开信息收集-搜索引擎 6. 信息收集与分析 7. 信息收…

网络安全学习-WEB安全常见漏洞

注入类漏洞 SQL注入漏洞 定义 sql注入漏洞&#xff0c;就是将用户可控的数据拼接到了sql语句当中&#xff0c;一起提交到了数据库执行。 攻*击者通过注入语句&#xff0c;改变sql执行的逻辑&#xff0c;通过控制部分sql语句&#xff0c;攻击者可以查询到数据库钟任何自己需要…

网站安全漏洞--大全

原文网址&#xff1a;网站安全漏洞--大全_IT利刃出鞘的博客-CSDN博客 简介 本文介绍网站常见的一些安全漏洞。 常见的漏洞有&#xff1a;SQL 注入、越权操作、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、DDoS 攻击、JSON 劫持、暴力破解、HTTP 报头追踪漏洞、信息泄露、文件上…

Springboot -- 网络安全漏洞处理

文章目录 不安全的 HTTP 方法以及 Nginx 屏蔽版本号显示说明检测方式不安全的 HTTP 方法 处理代码屏蔽 Nginx 版本号显示 点击劫持漏洞说明什么是ClickJacking检测方式处理代码 XSS跨站脚本攻击说明检测方式处理代码 &#xff08;参考网上的代码&#xff0c;主要是对传入的信息…

网络安全实验3 漏洞扫描

赞赏码 & 联系方式 & 个人闲话 【实验名称】漏洞扫描 【实验目的】 1.熟悉X-Scan工具的使用方法&#xff1b; 2.熟悉FTPScan工具的使用方法&#xff1b; 3.会使用工具查找主机漏洞 4.学会对弱口令的利用 5.了解开启主机默认共享以及在命令提示下开启服务的方法 …

网络安全技能大赛D模块常规漏洞加固详解

一、 说明&#xff1a; 1.所有截图要求截图界面、 字体清晰&#xff1b; 2.文件名命名及保存&#xff1a; 网络安全模块 D- XX&#xff08;XX为工位号&#xff09;&#xff0c; PDF 格式保存&#xff1b; 3.文件保存到 U盘提交。 4.linux 系统 root 密码 123456&#xff1b; 请…

2022年统计的27个网络安全漏洞数据信息

网络安全漏洞通常是指软件代码中允许攻击者访问网络或系统的缺陷。漏洞使企业和个人面临一系列威胁&#xff0c;包括恶意软件和帐户接管。 他们的漏洞利用存在大量可能的漏洞和潜在后果。美国政府的国家漏洞数据库 (NVD)由常见漏洞和暴露 (CVE) 列表提供&#xff0c;目前有超过…

计算机漏洞分几个等级,网络安全漏洞可以分为各个等级,A级漏洞表示?

满意答案 某匪kevin 2013.04.04 采纳率&#xff1a;44% 等级&#xff1a;11 已帮助&#xff1a;5835人 答案时B ----------------分级原则----------- 对漏洞分级有助于在漏洞被发现后&#xff0c;提供用户更多的信息以便于更快的给漏洞定位&#xff0c;并决定下一步采取的措…

网络安全常见漏洞原理及其防御

目录 1.SQL注入 1.1原理 1.2注入演示 1.3防御 1.4 补充 2.xss&#xff08;跨站脚本攻击&#xff09; 2.1 原理 2.2 注入演示 2.3防御 3.csrf&#xff08;跨站点请求伪造&#xff09; 3.1原理 3.2 注入演示 3.3 防御 4.文件上传 4.1原理 4.2 攻击演示 4.3防御 1.…

医疗器械网络安全漏洞自评报告模板

提示&#xff1a;编制医疗器械网络安全漏洞自评报告要点解析 文章目录 1. 目的2. 引用文件3. CVSS漏洞等级3.1 概述3.1.1 适用范围说明3.1.2 CNNVD-ID定义3.1.3 编码原则3.1.4 CNNVD-ID语法介绍 3.2 指标分析3.2.1 基本指标3.2.1.1可用性指标1)攻击向量2)攻击复杂性3)所需权限4…

Web网络安全漏洞分析,SQL注入原理详解

本文主要为大家介绍了Web网络安全漏洞分析SQL注入的原理详解&#xff0c;有需要的朋友可以借鉴参考下&#xff0c;希望能够有所帮助&#xff0c;祝大家多多进步&#xff0c;早日升职加薪 一、SQL注入的基础 1.1 介绍SQL注入 SQL注入就是指Web应用程序对用户输入数据的合法性没…

信息安全技术 网络安全漏洞分类分级指南(GB/T 30279-2020 )

文章目录 前  言1 范围2 规范性引用文件3 术语和定义4 缩略语5 网络安全漏洞分类5.1 概述5.2 代码问题5.3 配置错误5.4 环境问题5.5 其他 6 网络安全漏洞分级6.1 概述6.2 网络安全漏洞分级指标6.3 网络安全漏洞分级方法 附 录 A&#xff08;规范性附录&#…

计算机网络存在的漏洞,常见的计算机网络安全漏洞有哪些

当今的世界呈现网络信息化、网络全球化的发展大趋势。因此&#xff0c;我们应该竭尽全能地享受其带来的优势和便利&#xff0c;让信息网络为人类的生活进行健康服务。同时&#xff0c;我们还应该采取一切措施将各类危害网络信息安全的病毒清扫干净。只有防患于未然&#xff0c;…