Kubernetes
文章平均质量分 94
店伙计
这个作者很懒,什么都没留下…
展开
-
使用Reloader实现更新configmap后自动重启pod
在我们日常使用 Kubernetes 的过程中,需要经常使用到 configmap 或者 secret 等资源来对容器内的程序进行配置。但是存在一个问题,如果对 configmap 或者 secret 进行了更新,Pod 内部是无法感知到的。如果业务自身支持 reload 操作,比如 nginx,那么我们可以使用 inotify 感知到文件更新或者直接定期 reload(可以配合 readinessProbe 一起使用)。但是如果业务不支持热加载配置,就需要使用到 Kubernetes 自身提供的滚动更新功原创 2021-06-02 10:39:05 · 1403 阅读 · 0 评论 -
配置kubeconfig文件实现kubectl多集群切换
一、kubeconfig 文件结构由于业务的区分或者是双机房的情况,经常需要维护多个 k8s 集群。那么这种情况就会出现一个痛点,使用 kubectl 命令调用 kubeconfig 文件只能访问一个指定的集群,如果需要访问其他集群,就需要将 kubeconfig 替换。其实我们也可以将多个集群的 kubeconfig 文件整合到一起,然后通过切换上下文内容来实现访问不同的集群。但是整合的前提是每个集群的 kubeconfig 文件都要有不同的上下文参数。如果想了解如何制作具有不同上下文参数的 kub原创 2021-05-18 13:04:21 · 887 阅读 · 3 评论 -
在sealos搭建的k8s集群中自定义kubeconfig文件
公司目前使用 sealos 搭建了三套 k8s 集群,为了方便管理,计划将三个集群的 kubeconfig 整合到一起,然后使用 kubectl 命令切换上下文来实现管理多个集群的目的。但是由于 sealos 搭建的集群中,kubeconfig 文件的上下文完全一样,所以需要自定义一个 kubeconfig 文件。我首先说一下生成一个 kubeconfig 必要的步骤:1. 准备 CA 配置文件 ca-config.json。sealos 将 CA 的配置信息写到了代码中,所以我们需要自己再定义一个2原创 2021-05-18 10:53:56 · 442 阅读 · 0 评论 -
搭建etcd 3.4.15集群(详细教程,包括选举过程、数据备份和恢复)
推荐阅读Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506Helm3(K8S 资源对象管理工具)博客专栏:https://blog.csdn.net/xzk9381/category_10895812.html现在 Kubernetes 已经成为行业内的主流,那么作为存储了 Kubernetes 集群所有数据的 ETCD 集群也成为了重中之重。了解 ETCD 的原理以及维护方式就显得尤为重要。所以本文首先单独搭建一套 E.原创 2021-05-08 16:41:37 · 1180 阅读 · 0 评论 -
Dockerfile 中的 CMD 和 ENTRYPOINT 有什么区别
在编写 Dockerfile 过程中,需要使用 CMD 或 ENTRYPOINT 来指定容器运行时的命令。单从功能上来看,这两个命令的功能几乎是重复的,一般情况下使用其中一个命令就可以满足大部分的需求。接下来说一下 CMD 和 ENTRYPOINT 的不同点。一、exec 和 shell 模式首先要明确的一点就是 CMD 和 ENTRYPOINT 指令都可以使用 exec 和 shell 模式。这两种模式主要是用来指定容器中的不同进程作为 1 号进程。1. exec 模式前面提到了,exec 和 s原创 2021-03-10 14:40:06 · 6108 阅读 · 0 评论 -
K8S 搭建 nacos 1.4.1 集群(MySQL 8.0)
搭建 nacos 1.4.1 集群一、什么是 nacosNacos 是阿里开源的服务注册中心与配置中心组件,能够帮助开发人员快速实现动态服务发现、服务配置、服务元数据及流量管理。同时能够与 SpringCloud、Kubernetes、Dubbo 等开源生态无缝集成。Nacos 支持如下核心特性:服务发现: 支持 DNS 与 RPC 服务发现,也提供原生 SDK 、OpenAPI 等多种服务注册方式和 DNS、HTTP 与 API 等多种服务发现方式。服务健康监测: Nacos 提供对服务的实时原创 2021-03-01 15:54:28 · 7736 阅读 · 0 评论 -
搭建 Harbor 1.10.6 高可用集群
搭建 Harbor 1.10.6 高可用集群一、集群模式说明Harbor 支持如下几种集群模式:主从同步双主复制多 Harbor 实例共享后端存储1. 主从同步其中主从同步方式是 Harbor 官方提供的模式,只要向其中的主 Harbor 中 push 镜像,即可将镜像自动复制到多个从节点中。这种方式可以应用于镜像规模庞大,服务器节点较多,分布地域广泛的问题。对于主 Harbor 仓库单节点故障的问题,可以通过结合多 Harbor 实例共享后端存储的方式来解决。2. 双主复制双主复制就原创 2020-12-07 15:38:56 · 7285 阅读 · 0 评论 -
使用阿里云镜像仓库构建国外 Docker 镜像
使用阿里云镜像仓库下载国外镜像在日常使用 Docker 或 K8S 的过程中,经常会需要到国外的网站中下载镜像,但是有些网站在国内是无法访问的。对于这个问题可以使用阿里云提供的镜像仓库进行下载,然后 pull 到本地并修改 tag 来实现。例如在使用 K8S 部署 Istio 时,需要下载 gcr.io/istio-testing/install-cni:1.5-dev 镜像,可以根据如下步骤在阿里云中进行构建和下载:一、配置 Github首先登录 Github 中创建一个用于构建镜像的 rep原创 2020-11-09 10:35:19 · 6313 阅读 · 0 评论 -
Kubernetes 搭建 ES 集群(存储使用 local pv)
一、集群规划由于当前环境中没有分布式存储,所以只能使用本地 PV 的方式来实现数据持久化。ES 集群的 master 节点至少需要三个,防止脑裂。由于 master 在配置过程中需要保证主机名固定和唯一,所以搭建 master 使用 StatefulSet 控制器node 节点需要固定的主机名和固定的物理节点以及物理节点上的本地PV,所以需要使用 StatefulSet,配合 StorageClass 来固定。kibana为无状态服务,使用deployment。二、修改 elasticsea原创 2020-11-09 10:34:25 · 7330 阅读 · 0 评论 -
Kubernetes 搭建 ES 集群(存储使用 cephfs)
一、集群规划使用 cephfs 实现分布式存储和数据持久化ES 集群的 master 节点至少需要三个,防止脑裂。由于 master 在配置过程中需要保证主机名固定和唯一,所以搭建 master 使用 StatefulSet 控制器node 节点需要固定的主机名和固定的物理节点以及物理节点上的本地PV,所以需要使用 StatefulSet。kibana为无状态服务,使用deployment。二、修改 elasticsearch 镜像为了实现 ES 各个节点将数据进行统一存储并且根据目录名称原创 2020-11-09 10:33:49 · 6639 阅读 · 2 评论 -
使用 k8s 搭建 confluence 6.10.x 版本
将公司中已有的 confluence 服务迁移到 k8s 集群中,需要保留当前已有的数据。整体需要分为如下几个步骤:备份 mysql 数据备份 confluence 安装目录备份 confluence 数据目录制作 mysql 镜像并导入数据制作 confluence 镜像一、MySQL 服务1. 制作 MySQL 镜像由于公司环境中的 confluence 服务使用的数据库版本是 5.6,所以首先下载官方 mysql 镜像:docker pull mysql:5.6将下载好的镜像原创 2020-11-09 10:32:59 · 7633 阅读 · 1 评论 -
Kubernetes 配置私有镜像仓库时,没有权限访问的问题
使用 K8S 部署服务时,如果指定的镜像地址是内部镜像仓库,那么在下载镜像的时候可能会报权限错误。这是由于在 K8S 中部署服务时,K8S 需要到 Harbor 中进行一次验证,这个验证与节点中使用 docker login 登录 Harbor 是相互独立的。所以为了 K8S 可以验证成功,需要在部署服务的时候指定登录 Harbor 的 secret。例如创建如下 Secret:kubectl create secret docker-registry harbor-secret --namespace=原创 2020-11-09 10:32:05 · 6564 阅读 · 0 评论 -
如何处理 Kubeadm 搭建的集群证书过期问题
Kubeadm 证书过期处理以下内容参考了如下链接:https://www.cnblogs.com/skymyyang/p/11093686.html一、处理证书已过期的集群使用 kubeadm 搭建的集群,默认证书有效期是 1 年。如果没有在证书过期前续期,那么集群会无法运行,使用的过程中会报如下错误:x509: certificate has expired or is not yet valid.查看当前 kubeadm 搭建的集群证书有效期信息,命令如下:[@master74-53原创 2020-11-06 17:24:28 · 6483 阅读 · 0 评论 -
在 k8S 中搭建 SonarQube 7.4.9 版本(使用 PostgreSQL 数据库)
搭建 SonarQube 和 PostgreSQL 服务本文搭建的 SonarQube 版本是 7.4.9-community,由于在官方文档中声明 7.9 版本之后就不再支持使用 MySQL 数据库。所以此次搭建使用的数据库是 PostgreSQL 11.4 版本。一、部署 PostgreSQL 服务1. 创建命名空间将 PostgreSQL 和 SonarQube 放在同一个命名空间 ns-sonar 中,创建命名空间的 yaml 文件如下:---apiVersion: v1kind: N原创 2020-11-06 17:21:51 · 6523 阅读 · 1 评论 -
K8S 使用 SideCar 模式部署 Filebeat 收集容器日志
对于 K8S 内的容器日志收集,业内一般有两种常用的方式:使用 DaemonSet 在每台 Node 上部署一个日志收集容器,用于收集当前 Node 上所有容器挂载到宿主机目录下的日志使用 SideCar 模式将日志收集容器与业务容器部署在同一个 Pod 中,只收集对应容器的日志这两种方式各有优缺点。使用 DaemonSet 方式部署日志收集服务,管理起来简单,但是如果一个 Node 中运行了过多的 Pod,那么日志收集会存在性能瓶颈。使用 SideCar 模式可以更有针对性的收集容器的日志,但是原创 2020-11-06 17:19:55 · 8577 阅读 · 2 评论 -
Kubernetes 搭建 Kafka 和 Zookeeper 集群(完整教程)
搭建 Kafka:2.13-2.6.0 和 Zookeeper:3.6.2 集群一、服务版本信息:Kafka:v2.13-2.6.0Zookeeper:v3.6.2Kubernetes:v1.18.4二、制作 Zookeeper 镜像Zookeeper 使用的是 docker hub 中提供的官方镜像,使用如下命令可以直接下载:docker pull zookeeper:3.6.2由于官方镜像中使用的启动脚本不适用于我们公司内部使用,所以对其中的 docker-entrypoint.s原创 2020-11-06 17:06:33 · 7034 阅读 · 3 评论