(二十)、从宿主机访问 k8s(minikube) 发布的 redis 服务

news/2024/10/20 18:25:53/

文章目录

    • 1、环境准备
    • 2、具体操作
      • 2.1、启动 minikube (start/stop)
      • 2.2、准备 redis-deployment.yaml
      • 2.3、执行 redis-deployment.yaml
        • 2.3.1、查看 pod 信息和日志
      • 2.4、检查部署和服务状态
        • 2.4.1、如果需要删除
    • 3、查看 IP 的几个命令
      • 3.1、查看IP的几个命令
      • 3.2、解读
      • 3.3、宿主机连接 k8s 部署的 redis

1、环境准备

Mac
安装好了 Docker Desktop
VC Code (安装了 k8s 拓展插件 ) 使用 minikube 运行k8s 集群

2、具体操作

2.1、启动 minikube (start/stop)

minikube start
minikube stopminikube start <--driver=docker>
  • 另外一种方式
    这种方式,允许宿主机直接访问 集群 ip:nodeport 端口
minikube start --driver=virtualbox
  • 查看集群状态
➜  ~ kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:62973
CoreDNS is running at https://127.0.0.1:62973/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

redisdeploymentyaml_26">2.2、准备 redis-deployment.yaml

  • 创建一个 NodePort 类型的服务来暴露 Redis
  • 内容包含 redis 的 部署和服务配置信息,中间用 — 分割
  • 内容可以借助 VS Code,输入关键字 deployment 和 service 自动填充默认文本
apiVersion: apps/v1
kind: Deployment
metadata:name: redis
spec:replicas: 1selector:matchLabels:app: redistemplate:metadata:labels:app: redisspec:containers:- name: redisimage: redis:latestresources:limits:memory: "128Mi"cpu: "500m"ports:- containerPort: 6379---
apiVersion: v1
kind: Service
metadata:name: redis-service
spec:type: NodePortselector:app: redisports:- port: 6379targetPort: 6379nodePort: 30081

redisdeploymentyaml_72">2.3、执行 redis-deployment.yaml

redis-deployment.yaml 所在目录下执行

kubectl apply -f redis-deployment.yaml
2.3.1、查看 pod 信息和日志

在这里插入图片描述

kubectl get pods
kubectl logs <pod-name>

2.4、检查部署和服务状态

kubectl get deployments
kubectl get services
2.4.1、如果需要删除
kubectl delete deployment redis
kubectl delete service redis-service

3、查看 IP 的几个命令

3.1、查看IP的几个命令

注意,下面 redis-service 是我在 redis-deployment.yaml 已经自定义过的 service name

kubectl get nodes -o wide
kubectl get pods -o wide
kubectl get services -o wide
kubectl get svc
minikube service redis-service

这几个命令都是与Kubernetes集群管理和操作相关的,它们分别有不同的用途:

  • kubectl get nodes -o wide
    这个命令用于获取集群中所有节点的信息,并且使用 -o wide 参数来显示更多的列,比如节点的IP地址和其他详细信息。输出通常会包括节点名称、状态、年龄、版本等信息。
    在这里插入图片描述

  • kubectl get pods -o wide
    这个命令将会输出当前命名空间下的所有Pod,如果想要指定命名空间,可以加上–namespace=选项
    在这里插入图片描述

  • kubectl get services -o wide
    这个命令将会输出当前命名空间下的所有Service
    在这里插入图片描述

  • kubectl get svc
    这个命令用于列出集群中的所有服务(Service)。服务是在后端的一组Pods之上抽象的一个逻辑入口。输出将展示服务的名字、类型、端口、IP地址以及创建时间等信息。
    在这里插入图片描述

  • minikube service redis-service
    这个命令是特定于minikube环境的,它不仅列出名为redis-service的服务,还会自动配置你的主机的浏览器或默认的服务访问工具来访问该服务。minikube是一个用来在本地快速部署单节点Kubernetes集群的工具。这个命令特别有用,因为它可以帮助开发者快速地检查服务是否正确暴露,并且可以立即测试服务。
    在这里插入图片描述

3.2、解读

在这里插入图片描述
在这里插入图片描述

集群 minikube Node 节点 的内部 IP 是 192.168.58.2
redis 对应的 pod 的内部ip是10.244.0.12,我们配置的端口映射为 6379->6379
NodePort 服务的内部IP是 10.108.141.181,我们配置的端口映射为 30081->6379
宿主机通过 http://127.0.0.1:57407 的端口 57407 映射到 NodePort 的 30081 端口

redis_137">3.3、宿主机连接 k8s 部署的 redis

本文使用的方式借助 Docker 驱动程序,如果使用 VirtualBox 方式,则可以宿主机直接通过 http://<minikube-ip>:<node-port>进行请求

通过宿主机:隧道端口进行请求
http://127.0.0.1:57407
在这里插入图片描述


http://www.ppmy.cn/news/1540586.html

相关文章

河源市社保卡照片要求及手机自拍拿数码相片回执的方法

河源市的居民在申请或更新社保卡时&#xff0c;需要提交一张符合特定要求的照片。如果您需要更新或申请社保卡&#xff0c;本文将为您详细介绍河源市社保卡照片的规格要求&#xff0c;并指导您如何通过手机自拍获取符合标准的社保卡照片及回执。 根据河源市社保局的指南&#x…

写一段代码判断素数的函数,从主函数中输出一个整数,判断它是否为素数。

C语言关于函数的应用:判断它函数是否为素数。 prime就是用来判断素数的调用函数。 从主函数main开始输出&#xff0c;先输入一个整数&#xff0c;再通过调用函数prime 带来的数字去判断它是否为素数&#xff0c;因为是判断是否为素数&#xff0c;所以真就是素数&#xff0c;…

Electron入门笔记

Electron入门笔记 ElectronElectron 是什么Electron流程模型创建第一个Electron项目配置自动重启主进程和渲染进程通信打包应用 Electron Electron 是什么 跨平台的桌面应用开发框架使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium和 Node.js Electro…

就是这个样的粗爆,手搓一个计算器:还款计算器

作为程序员&#xff0c;没有合适的工具&#xff0c;就得手搓一个&#xff0c;PC端&#xff0c;移动端均可适用。废话不多说&#xff0c;直接上代码。 HTML: <div class"calculator"> <label for"loanAmount">贷款金额 (元)&#xff1a;</…

保护企业终端安全,天锐DLP帮助企业智能管控终端资产

为有效预防员工非法调包公司的软硬件终端资产&#xff0c;企业管理员必须建立高效的企业终端安全管控机制&#xff0c;确保能够即时洞察并确认公司所有软硬件资产的状态变化。这要求企业要有一套能够全面管理终端资产的管理系统&#xff0c;确保任何未经授权的资产变动都能被迅…

【HTML】构建网页的基石

我的主页&#xff1a;2的n次方_ HTML 是一种超文本标记语言&#xff0c;不仅有文本&#xff0c;还能包含图片&#xff0c;音频等 1. HTML 的文件基本结构 html 标签是整个 html 文件的最顶层标签&#xff0c;head 标签中写页面的属性&#xff0c;body 标签是页面中显示的…

生成 Excel 表列名称

Excel 大家都用过&#xff0c;它的列名是用字母编号的&#xff0c;A 表示第一列&#xff0c;B 表示第二列&#xff0c;AA 表示第27列&#xff0c;AB 表示第28列等等。 现给定一个数字&#xff0c;如何得到列名称呢。比如输入28&#xff0c;输出 AB。 一开始以为就是一个简单的…

大数据比对,shell脚本与hive技术结合

需求描述 从主机中获取加密数据内容&#xff0c;解密数据内容&#xff08;可能会存在json解析&#xff09;插入到另一个库中&#xff0c;比对原始库和新库的相同表数据的数据一致性内容。 数据一致性比对实现 上亿条数据&#xff0c;如何比对并发现两个表数据差异 相关流程…