本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
Docker微服务的ETCD v3.2集群搭建教程详解etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader。Google的容器集群管理系统Kubernetes、开源PaaS平台Cloud Foundry和CoreOS的Fleet都广泛使用了etcd。etcd的特性 简单: curl可访问的用户的API(HTTP+JSON)定义明确,面向用户的API(gRPC) 安全: 可选的SSL客户端证书认证 快速: 单实例每秒 1000 次写操作 可靠: 使用Raft保证一致性Etcd构建自身高可用集群主要有三种形式 1)静态发现: 预先已知 Etcd 集群中有哪些节点,在启动时直接指定好Etcd的各个node节点地址 2)Etcd动态发现: 通过已有的Etcd集群作为数据交互点,然后在扩展新的集群时实现通过已有集群进行服务发现的机制 3)DNS动态发现: 通过DNS查询方式获取其他节点地址信息本次搭建的基础环境底层OS:Centos7docker版本...
docker部署可执行jar包的思路与完整步骤 对于springboot项目运行,直接是java -jar的方式运行,如果想要放到docker中运行,可以参考本文,下面这篇文章主要给大家介绍了关于docker部署可执行jar包的思路与完整步骤,需要的朋友可以参考下前言我们构建的是运行bash文件命令的镜像,而不是构建jar包的镜像。好处就是,jar包有更新,只需替换jar包或者bash文件,而无须重新构建镜像。通常,用docker承载运行java程序,是将jar包先构建镜像,然后创建docker容器运行。如果jar包更新,就需要删除原镜像,重新来一遍,耗时耗力。有一个方案是,我们创建一个bash文件(linux的批处理文件),其内容是运行我们的jar包。然后创建运行该bash文件的docker镜像、docker容器。这样的好处是很明显的,jar包有更新,只替换jar包,甚至jar包改名了,也只是更改bash文件的内容而已,而镜像、容器,不会受到任何影响,无需作出任何改动。一、思路1、将docker容器中的指定文件夹挂载到宿主机上,更新jar包只需上传到宿主机指定路径,方便更新2、利用bash文件运行jar包,并构建该bash的镜像,代替构建直接运行jar包的镜像,利于镜像与jar包解耦。例如,app-1.0.0.jar 升级到 app-2.0.0.jar,只须更...
docker-compose启动redis多机集群的实现(6台服务器3主3从) 本文主要介绍了docker-compose启动redis多机集群的实现(6台服务器3主3从),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧+目录1. 环境说明节点IPredis-node-110.10.239.31redis-node-210.10.239.32redis-node-310.10.239.33redis-node-410.10.239.34redis-node-510.10.239.35redis-node-610.10.239.362. 集群部署redis-node-1yml 文件123456789101112version: '2.2'services: redis-node-1: image: bitnami/redis-cluster:7.0 restart: always container_name: redis-node-1 network_mode: "host" volumes: - ./redis-cluster_data-1:/bitnami/redis/data environment: - 'REDIS_PASSWORD=liubei@161' - 'REDIS_NODES=10.10.239.31 10.10.23...
docker容器通过alpine 配置jdk与jar打包镜像方法FROM alpineRUN sed -i "s@https://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories \ && apk add --no-cache tzdata \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezoneWORKDIR /optADD datagear-3.2.0.zip /optRUN unzip datagear-3.2.0.zip && rm -rf datagear-3.2.0.zip \&& apk --no-cache add openjdk8-jre-baseENV JAVA_HOME=/usr/lib/jvm/default-jvmENV DataGearWorkspace=/opt/dataENV PATH=$JAVA_HOME/bin:$PATHENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jarVOLUME /optEXPOSE 50401CMD ["java","-jar","datagear-3.2.0/datagear-3.2.0.jar"]
alpine配置国内镜像仓库 本文讲解 linux alpine 系统如何配置国内镜像仓库地址。默认情况下,安装系统软件包比较慢,通过配置国内镜像仓库地址可以加快软件包的安装速度。alpine 的体积非常小,一般用于创建 docker 容器,仅占用很小的磁盘空间。 执行如下命令即可: RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && apk update
alpine 配置国内源与时区 本文讲解 linux alpine 系统如何配置时区为中国。 执行如下命令即可:
RUN apk add --no-cache tzdata \ && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezonealpine 配置国内源:RUN sed -i "s@https://dl-cdn.alpinelinux.org/@https://repo.huaweicloud.com/@g" /etc/apk/repositories
Datagear3.2应用进行容器化改造1,适用了一个datagear的数据可视化功能,发现程序 没有容器化。这里就准备自行配置创建一个容器。2,采用 openeuler22.03系统,加载 java1.8与datagear3.2程序,最后进行创建一个容器。3,创建文件保存目录。mkdir /data/datagearcd /data/datagear4,下载jdk与datagear文件。 wget https://gitee.com/datagear/datagear/attach_files/1109525/download/datagear-3.2.0.zip wget https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz5,解压文件,并整理文件。 unzip datagear-3.2.0.zip tar zxvf jdk-8u151-linux-x64.tar.gz mv jdk1.8.0_151 jdk86,创建 Dockerfile文件,内容如下:FROM openeuler/openeuler:22.03WORKDIR /homeCOPY jdk8 /home/javaCOPY datagear-3.2.0 /home/datagearENV JAVA_HOME=/home/javaENV PATH=$JAVA_HOME/bin:$PATHENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jarENV DataGearWorkspace=/home/datagear/data/VOLUME /home/datagear/dataEXPOSE 50401CMD [ "java","-jar","datagear/datagear-3.2.0.j...
Docker图形化管理工具Portainer CE 重置恢复密码的方法 Docker 图形化管理工具Portainer CE的使用时,可能由于长时间不用,忘记了初始设置的管理员的密码。Portainer CE登陆页面没有找回密码功能。需要通过相关的命令解决处理。本文主要介绍Portainer CE 重置恢复管理员密码的方法。 1、下载镜像portainer/helper-reset-password docker pull portainer/helper-reset-password 2、查看停止运行的容器 1)查看运行容器的id docker container ls 输出: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c8a24a63ff8 louislam/uptime-kuma:1 "/usr/bin/dumb-init …" 21 hours ago Up 21 hours (healthy) 0.0.0.0:3001->3001/tcp uptime-kuma
017a43cdd723 portainer/portainer-ce "/portainer" 21 hours ago Up 21 hours 0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp...
kubernetes yaml模板与示例Kubernetes资源的创建、更新、删除等操作时均可以使用json或yaml文件进行操作,更新和删除可以依赖之前的文件进行更改,但是创建资源清单文件就没那么容易了,k8s的配置项实在太多,稍微不注意就会犯错。要写好一个yaml文件,你需要了解yaml的语法,需要掌握k8s的各种配置,对于一个k8s的初学者而言,这将是一件很难的事情。本文按照k8s资源分类,详细列出各个资源的yaml字段与格式,供大家学习和使用。一、pod实际生产环境中很少直接创建pod资源,基本都是通过资源控制器对pod进行管理。yaml模板:apiVersion: v1 #必填,版本号
kind: Pod #必填,资源类型
metadata: #必填,元数据
name: <name>-Depolyment #必填,资源名称
namespace: <namespace> #Pod所属的命名空间
labels: #自定义标签
- key: <value> #自定义标签名字<key: value>
annotations: #自定义注解列表
- name: <string> #自定义注解名字
spec: #必填,部署的详细定义
containers: #必填,定义容器列表
- name: <name> #必填,容器名称
...
k8s Traefik简介与部署什么是Traefik点击打开链接完整版安装说明1. 官方文档https://doc.traefik.io/traefik/2. 简介Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置。3. 流量示意图4. 核心概念当启动Traefik时,需要定义entrypoints,然后通过entrypoints的路由来分析传入的请求,来查看他们是否是一组规则匹配,如果匹配,则路由可能将请求通过一系列的转换过来在发送到服务上去。Providers用来自动发现平台上的服务,可以是编排工具、容器引擎Entrypoints监听传入的流量,是网络的入口点,定义了接受请求的端口(HTTP或者TCP)Routers分析请求(host,path,headers,SSL等),负责将传入的请求连接到可以处理这些请求的服务上去Service将请求转发给应用,负责配置如何最终将处理传入请求的实际服务Middlewares中间件,用来修改请求或者根据请求来做出判断,中间件被附件到路由上,是一种在请求发送到服务之前调整请求的一种方法Nginx-Ingress和Traefik区别1. Ingress Controllerk8s 是通...
总共58页,当前第3页 | 页数: - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
最新评论