k8s 集群安装
文章目录
kubeadm
前置要求
部署步骤
环境准备
准备工作
linux更改配置操作
安装Docker kubeadm kubelet kubectl
部署 k8s-master
作者声明
kubeadmkubeadm 是官方社区推出的一个用于快速部署 kubernetes 集群的工具。这个工具能通过两条指令完成一个 kubernetes 集群的部署
1234# 创建一个 Master 节点$ kubeadm init# 将一个 Node 节点加入到当前集群中$ kubeadm join <Master 节点的 IP 和端
前置要求一台或多台机器,操作系统 CentOS7.x-86_x64硬件配置:2GB 或更多 RAM,2 个 CPU 或更多 CPU,硬盘 30GB 或更多集群中所有机器之间网络互通可以访问外网,需要拉取镜像禁止 swap 分区
部署步骤
在所有节点上安装 Docker 和 kubeadm
部署 Kubernetes Master
部署容器网络插件
部署 Kubernetes Node,将节点加入 Kubernetes 集群中
部 ...
把jar打包成镜像
DockerFile1234567891011121314151617#依赖java8FROM java:8#暴露8080EXPOSE 8080#挂载目录VOLUME /tmp#linux 将renren-fast.jar 复制到app.jar#不确定jar名字可以写*.jar 即为所以ADD renren-fast.jar /app.jar#更新时间RUN bash -c 'touch /app.jar'#容器已启动 默认运行命令 java -jar app.jar#生产环境启动 可以写#容器已启动 默认运行命令 java -jar app.jar #ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"]#解决OOM问题 指定内存初始128M 最大300M ENTRYPOINT ["java","-jar","-Xms128m"," ...
Jenkins流水线文件
流水线文件由于要进行sonar代码质量分析 所以主pom文件需要进行如下配置
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950<properties> <sonar.jacoco.reportPaths>${ PWD}/./target/jacoco.exec</sonar.jacoco.reportPaths> <sonar.groovy.binaries>target/classes</sonar.groovy.binaries></properties> <build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-ma ...
k8s部署文件
k8s部署文件 以及 service暴露文件在项目deploy下创建prod/prod.yaml
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192#资源类型kind: DeploymentapiVersion: apps/v1metadata:#与微服务一样 name: gulimall-order#k8s的项目名 namespace: gulimall labels: #与微服务一样 app: gulimall-order#规格spec:#副本数量 replicas: 1#选择器 selector: #匹配labels 与上面labels名字相同 matchLabels: app: gulimall-order #模板 template: ...
K8s部署任何服务
创建配置可参考http://t.csdn.cn/qZqs3http://t.csdn.cn/qZqs3
创建存储卷可参考http://t.csdn.cn/qZqs3http://t.csdn.cn/qZqs3
创建服务可参考http://t.csdn.cn/qZqs3http://t.csdn.cn/qZqs3
作者声明1如有问题,欢迎指正!
k8s部署mysql
创建配置将主从同步配置内容写入一下
创建存储卷 pvc
服务创建选择有状态服务配置基本信息配置容器镜像挂载配置挂载数据
创建成功
与上一致创建从库配置主从参考http://t.csdn.cn/cUeBghttp://t.csdn.cn/cUeBg
作者声明1如有问题,欢迎指正!
k8s 有状态服务部署
可以使用 kubesphere,快速搭建 MySQL 环境。
有状态服务抽取配置为 ConfigMap 对应界面中的配置中心->配置
有状态服务必须使用 pvc 持久化数据 对应界面中的存储卷
服务集群内访问使用 DNS
作者声明1如有问题,欢迎指正!
RabbitMQ 集群
集群形式RabbiMQ 是用 Erlang 开发的,集群非常方便,因为 Erlang 天生就是一门分布式语言,但其本身并不支持负载均衡。如果想要实现负载均衡 需要配合nginx使用。RabbitMQ 集群中节点包括内存节点(RAM)、磁盘节点(Disk,消息持久化),集群中至少有一个 Disk 节点。
普通模式(默认)对于普通模式,集群中各节点有相同的队列结构,但消息只会存在于集群中的一个节点。对于消费者来说,若消息进入 A 节点的 Queue 中,当从 B 节点拉取时,RabbitMQ 会将消息从 A 中取出,并经过 B 发送给消费者。应用场景:该模式各适合于消息无需持久化的场合,如日志队列。当队列非持久化,且创建该队列的节点宕机,客户端才可以重连集群其他节点,并重新创建队列。若为持久化,只能等故障节点恢复。
镜像模式与普通模式不同之处是消息实体会主动在镜像节点间同步,而不是在取数据时临时拉取,高可用;该模式下,mirror queue 有一套选举算法,即 1 个 master、n 个 slaver,生产者、消费者的请求都会转至master。应用场景:可靠性要求较高场合,如下单、库 ...
ElasticSearcch集群
集群原理https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/current/index.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/current/distributed-cluster.htmlhttps://www.elastic.co/guide/cn/elasticsearch/guide/current/distributed-cluster.htmlelasticsearch 是天生支持集群的,他不需要依赖其他的服务发现和注册的组件,如 zookeeper这些,因为他内置了一个名字叫 ZenDiscovery 的模块,是 elasticsearch 自己实现的一套用于节点发现和选主等功能的组件,所以 elasticsearch 做起集群来非常简单,不需要太多额外的配置和安装额外的第三方组件。
单节点
一个运行中的 E ...
Redis集群
redis 集群形式
数据分区方案1、客户端分区
客户端分区方案 的代表为 Redis Sharding,Redis Sharding 是 Redis Cluster 出来之前,业界普遍使用的 Redis 多实例集群 方法。Java 的 Redis 客户端驱动库 Jedis,支持 RedisSharding 功能,即 ShardedJedis 以及 结合缓存池 的 ShardedJedisPool。优点不使用 第三方中间件,分区逻辑 可控,配置 简单,节点之间无关联,容易 线性扩展,灵活性强。缺点客户端 无法 动态增删 服务节点,客户端需要自行维护 分发逻辑,客户端之间 无连接共享,会造成 连接浪费。2、代理分区
代理分区常用方案有 Twemproxy 和 Codis。3、redis-cluster
高可用方式1、Sentinel( 哨兵机制)支持高可用前面介绍了主从机制,但是从运维角度来看,主节点出现了问题我们还需要通过人工干预的方式把从节点设为主节点,还要通知应用程序更新主节点地址,这种方式非常繁琐笨重, 而且主节点的读写能力都十分有限,有没有较好的办法解决这两个问题,哨兵机制 ...