【云原生】本地搭建Openshift单机最小化开发环境

2023-05-16

文章目录

      • 一、什么是CodeReady Container(CRC)?
      • 二、本地化部署CodeReady Container
      • 三、Code Ready Container的使用

公众号: MCNU云原生,文章首发地,欢迎微信搜索关注,更多干货,第一时间掌握!
前文讲过Openshift有两个版本,一是企业版的OCP,二是社区版的OKD。OCP需要购买Redhat的license,不适合开发测试和试验环境,而OKD虽然可以支持开发测试环境,但是部署还是稍微复杂,对于一些只需要简单试验的场景仍然显得太重了。为此,redhat提供了单机版的openshift,名为CodeReady Container。

一、什么是CodeReady Container(CRC)?

CodeReady Containers 内置一个最小的、预配置的 OpenShift(包含kunernetes),只要你的笔记本或者台式计算机的配置稍微比较好,那么是可以轻松安装的,它提供了一个快速、简单的方式来在本地计算机上搭建一个容器化的开发环境,日常开发和测试是非常方便的。

CodeReady Containers 支持 Linux、macOS 和 Windows,依赖于虚拟化技术,所以需要在这些操作系统上再安装虚拟化软件,例如Linux上的Libvirt、macOS上的Hyperkit和windows上的HyperV。

CodeReady Containers可以帮助开发人员再本地快速创建、测试和部署应用程序,并在开发完成后将其轻松地部署到生产环境中的openshift container platform,无需在生产环境中进行任何更改,它还提供了一个易于使用的Web界面和命令行界面,使开发人员能够方便地管理其容器化的开发环境。

除了基本的应用程序部署和管理,CodeReady Containers还提供了许多其他功能,例如:

  1. 集成开发环境(IDE)支持

CodeReady Containers可以与一些流行的IDE(如Eclipse和VS Code)集成,开发人员可以在本地计算机上编写、测试和部署应用程序。

  1. 持续集成/持续部署(CI/CD)支持

CodeReady Containers支持各种CI/CD工具,如Jenkins和GitLab,开发人员可以在本地构建和测试应用程序,并将其轻松地部署到生产环境中。

二、本地化部署CodeReady Container

本地化部署CodeReady Container是一件比较轻松的事情,一切都趋向于自动化。下面以Linux(Centos 7)为例进行安装演示。

准备一台主机,配置至少如下:

  • 4 个物理 CPU 内核
  • 9 GB 可用内存
  • 35 GB 的存储空间

另外创建一个专门用于crc运行的用户,因为crc的运行不能使用root用户,运行过程中会有提示。

首先从https://crc.dev/crc/下载crc版本,注意arm64的架构暂时不支持,请查看自己系统的架构,这里下载linx-amd64架构的安装包。

解压,并将crc放到系统PATH目录

[root@node1 openshift]# tar zxf crc-linux-amd64.tar.xz
[root@node1 crc-linux-2.15.0-amd64]# mv crc /usr/local/bin/

查看crc版本,从这里可以看到除了openshift,默认还安装了Podman,因为openshift默认将podman作为其容器运行时。

[root@node1 crc-linux-2.15.0-amd64]# crc version
CRC version: 2.15.0+cc05160
OpenShift version: 4.12.5
Podman version: 4.3.1

进行环境配置,CodeReady使用crc setup进行环境配置,它会检查必须的服务是否已经正确进行了安装并且正常运行,例如:

[k8s@node1 ~]$ crc setup
INFO Using bundle path /home/k8s/.crc/cache/crc_libvirt_4.12.5_amd64.crcbundle
INFO Checking if running as non-root
INFO Checking if running inside WSL2
INFO Checking if crc-admin-helper executable is cached
INFO Caching crc-admin-helper executable
INFO Using root access: Changing ownership of /home/k8s/.crc/bin/crc-admin-helper-linux
INFO Using root access: Setting suid for /home/k8s/.crc/bin/crc-admin-helper-linux
INFO Checking if running on a supported CPU architecture
INFO Checking minimum RAM requirements
INFO Checking if crc executable symlink exists
INFO Creating symlink for crc executable
INFO Checking if Virtualization is enabled
INFO Checking if KVM is enabled
INFO Checking if libvirt is installed
INFO Checking if user is part of libvirt group
INFO Adding user to libvirt group
INFO Using root access: Adding user to the libvirt group
INFO Checking if active user/process is currently part of the libvirt group
INFO Checking if libvirt daemon is running
INFO Checking if a supported libvirt version is installed
INFO Checking if crc-driver-libvirt is installed
INFO Installing crc-driver-libvirt
INFO Checking if systemd-networkd is running
INFO Checking if NetworkManager is installed
INFO Checking if NetworkManager service is running
NetworkManager is required. Please make sure it is installed and running manually

提示NetworkManager没有正常运行,我们可以查看NetworkManager的状态,发现确实处于inactive。

[k8s@node1 ~]$ sudo systemctl status NetworkManager
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:NetworkManager(8)

启动NetworkManager

[k8s@node1 ~]$ sudo systemctl status NetworkManager

重新进行setup,发现已经设置成功

[k8s@node1 ~]$ crc setup
INFO Using bundle path /home/k8s/.crc/cache/crc_libvirt_4.12.5_amd64.crcbundle
INFO Checking if running as non-root
INFO Checking if running inside WSL2
INFO Checking if crc-admin-helper executable is cached
INFO Checking if running on a supported CPU architecture
INFO Checking minimum RAM requirements
INFO Checking if crc executable symlink exists
INFO Checking if Virtualization is enabled
INFO Checking if KVM is enabled
INFO Checking if libvirt is installed
INFO Checking if user is part of libvirt group
INFO Checking if active user/process is currently part of the libvirt group
INFO Checking if libvirt daemon is running
INFO Checking if a supported libvirt version is installed
INFO Checking if crc-driver-libvirt is installed
INFO Checking if systemd-networkd is running
INFO Checking if NetworkManager is installed
INFO Checking if NetworkManager service is running
INFO Checking if /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf exists
INFO Checking if /etc/NetworkManager/dnsmasq.d/crc.conf exists
INFO Checking if libvirt 'crc' network is available
INFO Checking if libvirt 'crc' network is active
INFO Checking if CRC bundle is extracted in '$HOME/.crc'
INFO Checking if /home/k8s/.crc/cache/crc_libvirt_4.12.5_amd64.crcbundle exists
INFO Getting bundle for the CRC executable
INFO Downloading bundle: /home/k8s/.crc/cache/crc_libvirt_4.12.5_amd64.crcbundle...

0 B / 2.98 GiB [________________________________________________________________________________________________________________________] 0.00% ? p/s
INFO Uncompressing /home/k8s/.crc/cache/crc_libvirt_4.12.5_amd64.crcbundle
crc.qcow2:  11.82 GiB / 11.82 GiB [---------------------------------------------------------------------------------------------------------] 100.00%
oc:  124.65 MiB / 124.65 MiB [--------------------------------------------------------------------------------------------------------------] 100.00%
Your system is correctly setup for using CRC. Use 'crc start' to start the instance

使用crc start即可启动CodeReady Container。另外启动过程中需要输入Pull Secret,用户从redhat上下载相关内容,这需要注册redhat的账号,在https://console.redhat.com/openshift/create/local上进行下载,如下图所示:

启动crc,Pull Secret可以在启动过程中输入,也可以通过-p pull-secret.json指定。以下启动成功,在最后输出了web console访问地址、账号密码和oc命令用法。

[k8s@node1 ~]$ crc start
INFO Checking if running as non-root
INFO Checking if running inside WSL2
INFO Checking if crc-admin-helper executable is cached
INFO Checking if running on a supported CPU architecture
INFO Checking minimum RAM requirements
INFO Checking if crc executable symlink exists
INFO Checking if Virtualization is enabled
INFO Checking if KVM is enabled
INFO Checking if libvirt is installed
INFO Checking if user is part of libvirt group
INFO Checking if active user/process is currently part of the libvirt group
INFO Checking if libvirt daemon is running
INFO Checking if a supported libvirt version is installed
INFO Checking if crc-driver-libvirt is installed
INFO Checking if systemd-networkd is running
INFO Checking if NetworkManager is installed
INFO Checking if NetworkManager service is running
INFO Checking if /etc/NetworkManager/conf.d/crc-nm-dnsmasq.conf exists
INFO Checking if /etc/NetworkManager/dnsmasq.d/crc.conf exists
INFO Checking if libvirt 'crc' network is available
INFO Checking if libvirt 'crc' network is active
INFO Loading bundle: crc_libvirt_4.12.5_amd64...
CRC requires a pull secret to download content from Red Hat.
You can copy it from the Pull Secret section of https://console.redhat.com/openshift/create/local.
? Please enter the pull secret **********************************************************************************************************************
WARN Cannot add pull secret to keyring: exec: "dbus-launch": executable file not found in $PATH
INFO Creating CRC VM for openshift 4.12.5...
INFO Generating new SSH key pair...
INFO Generating new password for the kubeadmin user
INFO Starting CRC VM for openshift 4.12.5...
INFO CRC instance is running with IP 192.168.130.11
INFO CRC VM is running
INFO Updating authorized keys...
INFO Check internal and public DNS query...
INFO Check DNS query from host...
WARN Wildcard DNS resolution for apps-crc.testing does not appear to be working
INFO Verifying validity of the kubelet certificates...
INFO Starting kubelet service
INFO Waiting for kube-apiserver availability... [takes around 2min]
INFO Adding user's pull secret to the cluster...
INFO Updating SSH key to machine config resource...
INFO Waiting until the user's pull secret is written to the instance disk...
INFO Changing the password for the kubeadmin user
INFO Updating cluster ID...
INFO Updating root CA cert to admin-kubeconfig-client-ca configmap...
INFO Starting openshift instance... [waiting for the cluster to stabilize]
INFO 5 operators are progressing: image-registry, kube-storage-version-migrator, network, openshift-controller-manager, service-ca
INFO 5 operators are progressing: image-registry, kube-storage-version-migrator, network, openshift-controller-manager, service-ca
INFO 5 operators are progressing: image-registry, kube-storage-version-migrator, network, openshift-controller-manager, service-ca
INFO 5 operators are progressing: image-registry, kube-storage-version-migrator, network, openshift-controller-manager, service-ca
INFO 4 operators are progressing: image-registry, kube-storage-version-migrator, openshift-controller-manager, service-ca
INFO 3 operators are progressing: image-registry, openshift-controller-manager, service-ca
INFO 2 operators are progressing: image-registry, openshift-controller-manager
INFO 2 operators are progressing: image-registry, openshift-controller-manager
INFO All operators are available. Ensuring stability...
INFO Operators are stable (2/3)...
INFO Operators are stable (3/3)...
INFO Adding crc-admin and crc-developer contexts to kubeconfig...
Started the OpenShift cluster.

The server is accessible via web console at:
  https://console-openshift-console.apps-crc.testing

Log in as administrator:
  Username: kubeadmin
  Password: ereDn-BUtfV-HF37v-cDJvu

Log in as user:
  Username: developer
  Password: developer

Use the 'oc' command line interface:
  $ eval $(crc oc-env)
  $ oc login -u developer https://api.crc.testing:6443

到这里安装基本上就结束了,可以使用web console进行访问也可以使用oc命令进行操作。

web console浏览器访问地址为:https://console-openshift-console.apps-crc.testing/,oc访问登录地址为https://api.crc.testing:6443。

这些地址都是crc安装以后生成的地址,实际上要依靠DNS进行解析,默认情况下是解析到crc运行的虚拟机的地址,一般IP是:192.168.130.11,可以使用crc ip命令获取到。

此时查看/etc/hosts能够看到对应的解析关系:

[k8s@node1 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.130.11 api.crc.testing canary-openshift-ingress-canary.apps-crc.testing console-openshift-console.apps-crc.testing default-route-openshift-image-registry.apps-crc.testing downloads-openshift-console.apps-crc.testing oauth-openshift.apps-crc.testing

使用crc ip获取到的是运行crc的KVM虚拟机的IP,该IP地址是KVM使用的地址,只能在宿主机上访问到,无法直接访问此IP,如果需要在宿主机中访问,可以通过安装haproxy转发。

安装haproxy

[k8s@node1 ~]$ sudo yum install -y haproxy

配置crc ip环境变量,备份haproxy配置文件

[k8s@node1 haproxy]$ export CRC_IP=$(crc ip)
[k8s@node1 haproxy]$ cp haproxy.cfg haproxy.cfg.backup

在haproxy.cfg配置文件中增加以下内容,配置haproxy的转发

global
    debug

defaults
    log global
    mode http
    timeout connect 5000
    timeout client 500000
    timeout server 500000

frontend apps
    bind 0.0.0.0:80
    option tcplog
    mode tcp
    default_backend apps

backend apps
    mode tcp
    balance roundrobin
    server webserver1 ${CRC_IP}:80 check

frontend apps_ssl
    bind 0.0.0.0:443
    option tcplog
    mode tcp
    default_backend apps_ssl

backend apps_ssl
    mode tcp
    balance roundrobin
    option ssl-hello-chk
    server webserver1 ${CRC_IP}:443 check

frontend api
    bind 0.0.0.0:6443
    option tcplog
    mode tcp
    default_backend api

backend api
    mode tcp
    balance roundrobin
    option ssl-hello-chk
    server webserver1 ${CRC_IP}:6443 checkd

重启haproxy

$ sudo systemctl restart haproxy
$ sudo systemctl status haproxy

三、Code Ready Container的使用

crc界面非常友好,一般使用不存在困难,这里主要讲一下使用命令行操作crc的场景。

查看crc运行状态

crc status

停止crc

crc stop

启动crc

crc start

获取集群所有节点

oc get nodes

查看某个节点的详细信息

oc describe node node-name

登录

[k8s@node1 ~]$ oc login -u kubeadmin -p ereDn-BUtfV-HF37v-cDJvu https://api.crc.testing:6443
Login successful.

You have access to 66 projects, the list has been suppressed. You can list all projects with 'oc projects'

Using project "default".
[k8s@node1 ~]$ oc projects
You have access to the following projects and can switch between them with ' project <projectname>':

创建新项目

[k8s@node1 ~]$ oc new-project <project-name>

查看项目列表

[k8s@node1 ~]$ oc projects
You have access to the following projects and can switch between them with ' project <projectname>':

  * default
    hostpath-provisioner
    kube-node-lease
    kube-public
    kube-system
    openshift
    openshift-apiserver
    openshift-apiserver-operator
    openshift-authentication

切换到某个项目

[k8s@node1 ~]$ oc project openshift-apiserver
Now using project "openshift-apiserver" on server "https://api.crc.testing:6443".

查看project的信息

oc describe project projectname

部署应用程序

将一个容器镜像部署到当前选中的项目中。

oc new-app <container-image>

查看部署POD状态

oc get pods

创建访问路由

在openshift中要从外部访问应用程序需要通过route,以下命令可以创建一个route

oc expose svc/<service-name>

获取路由

oc get route

oc命令还有非常多,对应不同的功能,这里只列举了部分最常用的,其他的可以参考官网,就不一一详述了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【云原生】本地搭建Openshift单机最小化开发环境 的相关文章

  • conda install遇到condahttperror问题——代理

    如上图 xff0c 无论wget 还是conda install均出现以上提示 xff0c 换了各种conda源也无法解决 其中注意10 19 110 31 xff0c 发现是代理问题 查看proxy xff1a env grep i pr
  • 维普下载论文

    前几天还在感叹没有网站提供论文评论 现在发现维普已经提供论文评论 并且评论的东西都可以积分 积分之后可以下载论文 推荐论文让别人点击也可以增加积分 是个不错的计划
  • CentOS7 关闭防火墙

    CentOS6关闭防火墙使用以下命令 xff0c span class hljs comment 临时关闭 span service iptables stop span class hljs comment 禁止开机启动 span chk
  • 告别我的2016

    又过了一年 xff01 xff01 xff01 每一年都会因为所经历的不同 xff0c 收获也不同 在过去的2016年 xff0c 回想自己在工作上好像没有做多少事情 xff0c 却也有不一样的收获 2016年2月份 xff0c 刚过来春节
  • 判断某个月份是否在给定的月份区间内

    判断某个月份是否在给定的月份区间内 输入 指定月份 xff1a m m m 月份区间 xff1a m 1 m 1
  • 数据清洗

    1 概念 数据清洗 xff1a 把脏数据清洗掉 xff0c 提高数据质量 Data cleansing Data cleaning Data scrubbing三种表达方式都可以 xff0c 意思都是检测和去除数据集中的噪声数据和无关数据
  • 联想H61主板升级BIOS,支持nvme硬盘

    本教程升级有一定风险 xff1a 请阅读文章最后的 遗憾 部分接受再升级 最近因为手上有一台联想的i7 2600主机 xff0c 他的主板是H61的 xff0c 正好看见pcie接口空着 xff0c 在网上看见有人用它升级了拜滕的存储芯片
  • armv8 摘要

    作者 xff1a 蜗蜗 发布于 xff1a 2015 7 7 22 31 分类 xff1a ARMv8A Arch 1 前言 ARMv8 xff08 当前只有A系列 xff0c 即ARMv8 A xff09 架构 xff0c 是ARM公司为
  • android 绘制过程摘要

    1 没有硬件加速的UI绘制过程 xff1a 在Android应用程序进程这一侧 xff0c 每一个窗口都关联有一个Surface 每当窗口需要绘制UI时 xff0c 就会调用其关联的Surface的成员函数lock获得一个Canvas xf
  • opengl 摘要

    一 创建opengl工程 1 第一步设置像素格式 如支持双缓冲 xff0c 设置颜色模式 xff0c 如是rgba xff0c 还是颜色索引 xff08 需调色板 xff09 xff0c 设置模板缓冲区的特征值 2 第二步创建绘制环境 且自
  • Watchdog

    一 简介 软件狗 类似硬件狗 xff0c 硬件狗是被动等 喂 xff0c 系统主要线程主动调用硬件接口 xff0c 告诉系统本线程是正常的 但android 这种framework层中的软件狗本身是一个线程 xff0c 会主动询问系统关键线
  • android Binder 学习

    一 面向过程调用与面向对象调用的区别 1 面向过程调用同一时刻只能服务一个客户 xff0c 而且该过程必须具有锁功能 xff0c 如果有其他客户想要访问 xff0c 则需要等待前一客户完成操作 2 面向对象则能同时服务多个客户 xff0c
  • QEMU KVM 虚拟机移植之性能提高篇小结(android 虚拟机双系统方案)

    一 提升性能核心要素 1 将 OPENGL 接口进行穿透调用 xff0c 下面对opengl穿透做个小结 2 在arm开发板上打开kvm特性 xff0c 这个qcom amp mtk都是实现了的 xff0c 只需要打开开关即可 二 ANDR
  • android 系统基础知识

    一 Activity 启动模式 Activity有四种启动模式 xff1a standard singleTop singleTask singleInstance 可以在AndroidManifest xml中activity标签的属性a
  • android 内存管理概要

    一 zram zram swap 主要原理就是从内存分配一块区域出来用作 swap 分区 xff0c 每次如果内存空间不够了 xff0c 不是把应用程序杀掉 xff0c 而是把应用程序所占用的内存数据复制到 swap 分区 xff0c 等切
  • python统计从1970/1/1 08:00:00到某个时刻的总秒数

    使用场景 xff0c 比如需要从一堆文件中 xff0c 选出时间属性在2017年12月13日00 00 00以后的所有文件 span class token keyword import span os statinfo span clas
  • art知识简要概括

    一 GC分类 1 kGcCauseForAlloc 当没有足够的内存分配时触发 2 kGcCauseBackground 当已使用的内存超过最大值时触发 3 kGcCauseExplicit 当使用System GC时触发 二 GC守护线程
  • SEAndroid 知识点

    一 DAC 1 自主访问控制 Linux上的安全模型叫DAC xff0c 进程的权限与执行它的用户的权限一致 xff0c file针对所有者 所有者组 其他用户制定相关权限 二 MAC 1 强访问控制 SELinux上的安全模型叫MAC x
  • Cgroup 理解

    一 综述 1 cgroup 可以控制进程组的资源 xff08 cpu memory i o等 xff09 2 cgroup 采用树型结构来控制进程组的资源 3 cgroup 利用资源子系统来分割资源 4 cgroup 是lxc xff0c
  • namespace 理解

    当调用clone时 xff0c 设定了CLONE NEWPID xff0c 就会创建一个新的PID Namespace xff0c clone出来的新进程将成为Namespace里的第一个进程 一个PID Namespace为进程提供了一个

随机推荐

  • Bionic 学习

    一 基本概况 1 不与其他libc库兼容 xff0c 有自己的动态链接器 linker 2 不支持c 43 43 异常抛出 3 一共有libc xff08 c基础库 xff09 libm xff08 数学库 xff09 libdl xff0
  • 基于容器原理(docker、lxc、cells)的Android 双系统设计概要

    写在前面 前几年预研加开发android双系统 xff0c 中途用过不少开源代码或者研读过大牛BLOG xff0c 现开放双系统设计原理来回报社区 android容器技术已在android 6 7 8 9 10 11 12 13版本中分别实
  • Android手机可信引导解决方案

    1 概述 Android手机的可信引导过程 xff0c 主要分为三部分 xff0c lk的可信 xff0c boot的可信 xff0c 和system的可信 xff1b 系统上电到lk的启动过程验证 因为和硬件联系紧密 xff0c 基本都由
  • Android智能手机安全解决方案

    1 终端安全解决方案全景 1 1 Android系统框架预览 此外 xff0c 鉴于许多硬件厂商不希望公开其设备驱动程序 xff0c GOOGLE在运行时库层对下屏蔽实现细节 xff0c 对上提供统一接口增加了硬件抽象层 1 2 Andro
  • EFI secure boot

    一 EFI secure boot 是EFI BIOS中的一个子标签 xff0c 同时EFI BIOS提供证书管理功能 xff0c 系统可以同时拥有多个证书供用户选择 EFI只能执行经过正确签名的固件 EFI 证书种类比较多 xff1a P
  • TPM2.0读书笔记

    三种关联性技术 1 Intel TXT技术 2 TrustZone技术 3 AMD PSP技术 TPM实体 1 持久性hierarchy TPM RH PLATFORM 平台 TPM RH OWNER 存储 TPM RH ENDORSEME
  • 适用各种语言的字符串jaccard相似度的计算

    要计算两个文本的相似度 xff0c 现在可能大多会通过相似度模型来计算 xff0c 或者是通过embedding向量来计算 但可解释性差一些 xff0c 有些情况下 xff0c 可能直接用两个文本共同的字符数来计算更直观一些 Jaccard
  • windows下PowerShell别名使用

    个人在windows下习惯用PowerShell替代CMD作为命令行工具 如何自定义命令来提高生产力呢 xff1f linux中有alias工具 xff0c 如 span class token builtin class name ali
  • Linux

    Linux 1 计算机硬件体系 1 1冯诺依体系 由运算器 控制器 存储器 输入设备和输出设备五部门组成 顺序执行程序 计算机处理数据和指令一律用二进制表示 1 2硬件组成 存储器 随机存储内存RAM xff0c 内存 xff0c 逻辑IO
  • c++ threadpool.h

    threadpool h include lt pthread h gt include lt semaphore h gt include lt iostream gt include lt vector gt using namespa
  • java从http url下载文件的简单方法

    br br import java io File br import java net URL br br import org apache commons io FileUtils br br public class Downloa
  • idea运行Sparkstreaming读取hdfs文件遇到的问题

    先贴代码 idea中运行SparkStreaming时 xff0c 动态添加文件至指定目录下 xff0c 结果没有任务信息输出 问题原因 xff1a idea所在主机时间和hdfs集群时间不同步 代码中指定的hdfs目录为非空 启动之前已经
  • [HDU1085][HDU1028][HDU2013] 组合数学入门(母函数、递推)

    先来说一说母函数 xff0c 今天是第一次学 杭电关于母函数的PPT感觉不错 xff0c 挺适合入门看看的 什么是母函数 xff1f 对于序列a0 xff0c a1 xff0c a2 xff0c 构造一函数 xff1a G x 61 a0
  • Elasticsearch系列-Elasticsearch入门教程

    引言 Elasticsearch是著名的开源分布式搜索和数据处理平台 xff0c 是一个基于Lucene的分布式 实时 全文搜索系统 xff0c 其稳定 可靠 高可用 可大规模扩展等特性 xff0c 使得Elasticsearch的应用十分
  • Elasticsearch系列-Elasticsearch集群工作原理

    引言 ELasticsearch作为一个分布式搜索引擎 xff0c 能够出色地支持集群模式 动态水平扩容 故障转移等分布式系统特性 xff0c 这是其作为全文搜索引擎首选的重要原因 本文从零开始描述集群的配置和扩容过程 xff0c 让你对E
  • Elasticsearch系列-集群API(一)

    引言 Elasticsearch提供了大量了的Rest API用以操作Elastic search的相关功能 xff0c 提供了极大的便利 xff0c 掌握这些API是熟练地使用Elasticsearch的前提 Elastic search
  • JVM系列-CPU使用率高问题排查方法

    引言 Java程序在实际生产过程中经常遇到CPU使用率高的问题 xff0c 那么应该如何排查问题的原因呢 xff0c 本文大概描述一下排查方法 一 排查占用CPU的进程 使用top命令 xff0c 在大写打开的情况下按P键或者在大写没有打开
  • python判断list中的值是否完全一样

    对于一个python的list a span class token operator 61 span span class token punctuation span span class token number 1 span spa
  • 生产问题排查-SSLException:Unrecognized SSL message,plainetxt connection异常排查

    引言 最近在一次生产问题中遇到了SSLException Unrecognized SSL message plainetxt connection错误异常信息 xff0c 背景为调用微信api 获取相应信息的时候报错 xff0c 微信ap
  • 【云原生】本地搭建Openshift单机最小化开发环境

    文章目录 一 什么是CodeReady Container xff08 CRC xff09 xff1f 二 本地化部署CodeReady Container三 Code Ready Container的使用 公众号 xff1a MCNU云原