Redis安装和部署

单机安装 通过 yum 安装 在 CentOS 7 上通过 yum 安装 Redis,可以按照以下步骤进行操作: 更新系统软件包: sudo yum update 安装 Redis: sudo yum install redis 可以看到默认安装的 redis 版本是 3.2.12-2.el7 如果需要安装 redis 7,这需要下载 yum 源: sudo yum install epel-release sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 然后,在指定源进行安装: yum --enablerepo=remi install redis 启动 Redis 服务: sudo systemctl start redis 配置 Redis 开机自启动: sudo systemctl enable redis 修改配置文件 /etc/redis.conf 修改 bind 和 requirepass bind 0.0.0.0 requirepass 123456 然后重启 redis: sudo systemctl restart redis 开启防火墙(可选) # 添加 redis 端口 firewall-cmd --zone=public --add-port=6379/tcp --permanent firewall-cmd --zone=public --add-port=6379/udp --permanent # 重启防火墙 firewall-cmd --reload 运行 redis-cli redis-cli 127.0.0.1:6379> auth 123456 OK 通过 snap 安装 安装 redis...

使用Argo CD实现持续交付

安装 ArgoCD 安装: $ kubectl create namespace argocd $ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml 查看安装是否成功,当argocd命名空间下Pod状态都为Running时表示安装成功。 kubectl get pod -A 执行如下命令,将名为argocd-server的Service类型修改为NodePort。 $ kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}' service/argocd-server patched 查看修改结果。 $ kubectl -n argocd get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE argocd-applicationset-controller ClusterIP 10.43.184.106 <none> 7000/TCP,8080/TCP 24h argocd-dex-server ClusterIP 10.43.99.202 <none> 5556/TCP,5557/TCP,5558/TCP 24h argocd-metrics ClusterIP 10.43.47.99 <none> 8082/TCP 24h argocd-notifications-controller-metrics ClusterIP 10.43.58.49 <none> 9001/TCP 24h argocd-redis ClusterIP 10.43.70.36 <none> 6379/TCP 24h argocd-repo-server ClusterIP 10.43.40.224 <none> 8081/TCP,8084/TCP 24h argocd-server NodePort 10.43.180.135 <none> 80:31912/TCP,443:32728/TCP 24h argocd-server-metrics ClusterIP 10.43.5.195 <none> 8083/TCP 24h 通过 argocd-server Service访问Argo CD,直接使用节点IP:端口号访问即可。例如本示例中,端口号为32728。 登录用户名为admin,密码可使用如下命令获取。...

All things about WebSocket

Wikipedia:WebSocket WebSocket - Web APIs | MDN PubNub:什么是 WebSocket? What are WebSockets? websocket protocol - RFC6455 - tools.ietf.org WebSocket Ably:What are WebSockets used for? Pusher:What are WebSockets? WebSocket vs. HTTP communication protocols What are WebSockets? | Web Security Academy Educative:What is WebSocket? Spring:WebSocket Writing a WebSocket server in Java - Web APIs Baeldung:A Guide to the Java API for WebSocket Baeldung:A Java Client for a WebSockets API WebSocket Implementation with Spring Boot and STOMP ApiFox:WebSocket协议入门到精通 JSR 356, Java API for WebSocket WebSocket 协议解析 [RFC 6455] WebSocket原理及技术简介 【NO.23】一篇文章彻底搞懂websocket协议的原理与应用(一) WebSocket 协议详解 WebSocket 协议(RFC 6455 中文版) 用JAVA分别实现WebSocket客户端与服务端 WebSocket Programming with Java MQTT Websocket Client

在Kubernetes集群上安装Rancher

前提条件 Kubernetes 集群:可以使用 RKE、RKE2、K3S 等工具安装集群 Ingress Controller:对于 RKE、RKE2 和 K3s,你不需要手动安装 Ingress Controller,因为它是默认安装的。 CLI 工具:安装 kubectl 和 helm 使用 docker 安装 Rancher mkdir -p /data/rancher docker run --name rancher --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 -v /data/rancher:/var/lib/rancher/ rancher/rancher:stable docker logs -f rancher 使用 helm 安装 Rancher 参考:在 Kubernetes 集群上安装/升级 Rancher 添加 Helm Chart 仓库,安装 cert-manager helm repo add rancher-stable https://releases.rancher.com/server-charts/stable helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.14.5 \ --set installCRDs=true kubectl get pods --namespace cert-manager 不同的证书配置需要使用不同的 Rancher 安装命令。 先创建命名空间: kubectl create namespace cattle-system 默认情况是使用 Rancher 生成 CA,并使用 cert-manager 颁发用于访问 Rancher Server 接口的证书。...

K8s安装Cert Manager

cert-manager 为 Kubernetes 或 OpenShift 集群中的工作负载创建 TLS 证书,并在证书过期之前续订证书。 cert-manager 可以从各种证书颁发机构获取证书,包括: Let’s Encrypt、HashiCorp Vault、 Venafi和私有 PKI。 使用 cert-manager 的证书资源,私钥和证书存储在 Kubernetes Secret 中,该 Secret 由应用程序 Pod 挂载或由 Ingress 控制器使用。使用csi-driver、csi-driver-spiffe或istio-csr,私钥是在应用程序启动之前按需生成的;私钥永远不会离开节点,并且不会存储在 Kubernetes Secret 中。 安装 参考官方文档:https://cert-manager.io/docs/installation/ 使用kubectl安装 kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.yaml 查看: $ kubectl get pods --namespace cert-manager 使用helm安装 添加 repo: helm repo add jetstack https://charts.jetstack.io --force-update helm repo update 安装 cert-manager: helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --version v1.14.5 \ --set installCRDs=true 更多配置参数,参考:https://artifacthub.io/packages/helm/cert-manager/cert-manager 查看状态 $ kubectl -n cert-manager rollout status deploy/cert-manager deployment "cert-manager" successfully rolled out $ kubectl get pods -n cert-manager NAME READY STATUS RESTARTS AGE pod/cert-manager-5c47f46f57-k78l6 1/1 Running 0 91s pod/cert-manager-cainjector-6659d6844d-tr8rf 1/1 Running 0 91s pod/cert-manager-webhook-547567b88f-8lthd 1/1 Running 0 91s 使用helm3查看:...

All things about Drone

Drone by Harness ™ 是一个现代化的持续集成平台,使忙碌的团队能够使用强大的云原生管道引擎自动化其构建、测试和发布工作流程。 Drone实践 Docker 容器环境下的持续集成最佳实践:构建基于 Drone + GitFlow + K8s 的云原生语义化 CI 工作流 容器环境持续集成优化,Drone CI 提速 500% 在Kubernetes上执行Drone CI/CD 玩转 Drone CI 基于 gogs/gitlab 和 drone 搭建的 CI/CD 平台 基于drone构建CI/CD系统,对接k8s 使用Drone构建静态博客 Hugo + Gogs + Drone 搭建博客 How to build a Hugo static site automatically using Drone CI and Codeberg.org Static Website Generation on Steriods with Docker A HUGO PLUGIN FOR YOUR DRONE CI PIPELINE drone持续集成-发布github pages 视频教学 一天學會 DevOps 自動化測試及部署

通过k3sup安装k3s

k3sup是一个支持在PC、虚拟机、ARM设备上安装k3s的工具,官方网站:https://k3sup.dev/ 安装k3sup 在线安装: curl -sLS https://get.k3sup.dev | sh sudo install k3sup /usr/local/bin/ 离线安装,下载地址:https://github.com/alexellis/k3sup/releases wget https://github.com/alexellis/k3sup/releases/download/0.13.5/k3sup mv k3sup /usr/local/bin/ chmod +x /usr/local/bin/k3sup 查看版本: $ k3sup version _ _____ | | _|___ / ___ _ _ _ __ | |/ / |_ \/ __| | | | '_ \ | < ___) \__ \ |_| | |_) | |_|\_\____/|___/\__,_| .__/ |_| bootstrap K3s over SSH in < 60s 🚀 🚀 Speed up GitHub Actions/GitLab CI + reduce costs: https://actuated.dev Version: 0.13.5 Git Commit: d952d6df22b06147806ca1030b8ba3a4bb9e0c0c 创建k3s集群 创建一个本地集群 k3sup install \ --local \ --context localk3s \ --k3s-channel stable \ --k3s-extra-args '--docker' 查看集群状态: $ k3sup ready --context localk3s --kubeconfig ....

2024-05-09 2 min

安装k3s

K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。 k3s 文档:https://docs.rancher.cn/docs/k3s/_index K3s介绍 什么是 K3s? K3s 是一个完全兼容的 Kubernetes 发行版,具有以下增强功能: 打包为单个二进制文件。 使用基于 sqlite3 作为默认存储机制的轻量级存储后端。同时支持使用 etcd3、MySQL 和 Postgres。 封装在简单的启动程序中,可以处理很多复杂的 TLS 和选项。 默认情况下是安全的,对轻量级环境有合理的默认值。 添加了简单但强大的 batteries-included 功能,例如: 本地存储提供程序 service load balancer Helm controller Traefik ingress controller 所有 Kubernetes control plane 组件的操作都封装在单个二进制文件和进程中。因此,K3s 支持自动化和管理复杂的集群操作(例如证书分发等)。 最大程度减轻了外部依赖性,K3s 仅需要现代内核和 cgroup 挂载。K3s 打包了所需的依赖,包括: containerd Flannel (CNI) CoreDNS Traefik (Ingress) Klipper-lb (Service LB) 嵌入式网络策略控制器 嵌入式 local-path-provisioner 主机实用程序(iptables、socat 等) 为什么叫 K3s? 我们希望安装的 Kubernetes 只占用一半的内存。Kubernetes 是一个 10 个字母的单词,简写为 K8s。Kubernetes 的一半就是一个 5 个字母的单词,因此简写为 K3s。K3s 没有全称,也没有官方的发音。 适用场景 K3s 适用于以下场景: 边缘计算-Edge 物联网-IoT CI Development ARM 嵌入 K8s 由于运行 K3s 所需的资源相对较少,所以 K3s 也适用于开发和测试场景。在这些场景中,如果开发或测试人员需要对某些功能进行验证,或对某些问题进行重现,那么使用 K3s 不仅能够缩短启动集群的时间,还能够减少集群需要消耗的资源。与此同时,Rancher 中国团队推出了一款针对 K3s 的效率提升工具:AutoK3s。只需要输入一行命令,即可快速创建 K3s 集群并添加指定数量的 master 节点和 worker 节点。如需详细了解 AutoK3s,请参考AutoK3s 功能介绍。...

2024-05-09 4 min

通过k3d安装k3s

k3d是什么 k3d 是一个轻量级包装器,用于在 docker 中运行k3s(Rancher Lab 的最小 Kubernetes 发行版)。 k3d 使得在 docker 中创建单节点和多节点k3s集群变得非常容易,例如用于 Kubernetes 上的本地开发。 注意: k3d 是一个社区驱动的项目,但它不是官方 Rancher (SUSE) 产品。 k3d安装 通过脚本安装: wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash macos 上通过homebrew安装: brew install k3d 查看帮助文档: $ k3d -h https://k3d.io/ k3d is a wrapper CLI that helps you to easily create k3s clusters inside docker. Nodes of a k3d cluster are docker containers running a k3s image. All Nodes of a k3d cluster are part of the same docker network. Usage: k3d [flags] k3d [command] Available Commands: cluster Manage cluster(s) completion Generate completion scripts for [bash, zsh, fish, powershell | psh] config Work with config file(s) help Help about any command image Handle container images....

2024-05-09 3 min

All things about Spring Modulith

VMware 推出了一个实验性的项目Spring Modulith,以便于通过模块和事件更好地组织 Spring Boot 3 应用。该项目引入了新的类和注解,但并不会生成代码。它的模块没有使用 Java Platform Module System(JPMS),而是映射到了普通的 Java 包。模块有 API,但是 Spring Modulith 鼓励使用 Spring 应用事件作为“主要的交互方式”。这些事件可以自动持久化到事件日志中。Spring Modulith 还简化了模块和事件的测试。 2022 年 11 月推出的Spring Boot 3会是 Spring Modulith 的基础。所以它的基线是 Spring Framework 6、Java 17 和 Jakarta EE 9。Spring Modulith 是Moduliths(其名字有个“s”后缀)项目的继承者。该项目使用 Spring Boot 2.7,目前已经退役,只接收缺陷修正,直至 2023 年 11 月份。 https://spring.io/blog/2022/10/21/introducing-spring-modulith https://www.baeldung.com/spring-modulith https://www.baeldung.com/spring-modulith-event-externalization https://piotrminkowski.com/2023/10/13/guide-to-modulith-with-spring-boot/ https://springdoc.cn/guide-to-modulith-with-spring-boot/ https://medium.com/andamp/event-sourcing-with-spring-modulith-2b35b0569dbb https://www.geeksforgeeks.org/what-is-spring-modulith/ https://github.com/xsreality/spring-modulith-with-ddd https://riteshshergill.medium.com/the-spring-modulith-monolithic-but-manageable-ca1532a1e585 https://www.infoq.com/news/2022/11/spring-modulith-launch/ https://dzone.com/articles/architecture-style-modulith-vs-microservices https://speakerdeck.com/olivergierke/spring-modulith-a-deep-dive https://www.jappware.com/proffesional-activity/make-monolithic-apps-great-again-with-spring-modulith-coffeejug/ https://blog.worldline.tech/2024/01/23/modulith.html https://springdoc.cn/spring-modulith-intro/ https://dimitri.codes/checking-out-spring-modulith/ https://www.lefer.cn/posts/29752/ https://www.jdon.com/63003.html https://blog.csdn.net/cfy_banq/article/details/132185951 https://www.zhihu.com/question/567053421