使用Port Forwarding连接k8s集群的pod(redis、mysql等)
一. 创建Redis的deployment和service
1. 创建Redis deployment
redis-master-deployment.yaml
apiVersion: apps/v1 # for versions before 1.9. use apps/v1beta2
kind: Deployment
metadata:
name: redis-master
labels:
app: redis
spec:
selector:
matchLabels:
app: redis
role: master
tier: backend
replicas:
template:
metadata:
labels:
app: redis
role: master
tier: backend
spec:
containers:
- name: master
image: k8s.gcr.io/redis:e2e # or just image: redis
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort:
执行:
kubectl create -f redis-master-deployment.yaml
查看执行结果:
deployment "redis-master" created
当 pod 是 ready 时,将得到:
kubectl get pods
NAME READY STATUS RESTARTS AGE
redis-master-765d459796-258hz / Running 50s
kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
redis-master 55s
kubectl get rs
NAME DESIRED CURRENT READY AGE
redis-master-765d459796 1m
2. 创建redis service
redis-master-service.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-master
labels:
app: redis
role: master
tier: backend
spec:
ports:
- port:
targetPort:
selector:
app: redis
role: master
tier: backend
执行:
kubectl create -f redis-master-service.yaml
查看结果:
service "redis-master" created
3. 验证 Redis 服务是否运行在 pod 中并且监听 6379 端口:
kubectl get pods redis-master-765d459796-258hz –template=‘{{(index (index .spec.containers ).ports ).containerPort}}{{”\n”}}’
输出:
二、转发一个本地端口到Pod端口
1. 从 Kubernetes v1.10 开始,kubectl port-forward 允许使用资源名称(例如服务名称)来选择匹配的 pod 来进行端口转发。
kubectl port-forward redis-master-765d459796-258hz :
相当于:
kubectl port-forward pods/redis-master-765d459796-258hz :
或
kubectl port-forward deployment/redis-master :
或
kubectl port-forward rs/redis-master :
或
kubectl port-forward svc/redis-master :
以上的命令都有效,输出类似于:
I0710 ::38.274550 portforward.go:] Forwarding from 127.0.0.1: ->
I0710 ::38.274797 portforward.go:] Forwarding from [::]: ->
2. 启动 Redis 命令行接口:
redis-cli
在 Redis 命令行提示符下,输入 ping 命令:
127.0.0.1:>ping
提示ping成功
与本地 6379 端口建立的连接将转发到运行 Redis 服务器的 pod 的 6379 端口。通过此连接,可以使用本地工作站来调试在 pod 中运行的数据库。
使用Port Forwarding连接k8s集群的pod(redis、mysql等)的更多相关文章
- Kubernetes 远程工具连接k8s集群
Kubernetes 远程工具连接k8s集群 1.将Master的kubectl文件复制到Node内 scp k8s/kubernetes/server/bin/kubectl root@192.16 ...
- k8s集群Job Pod 容器可能因为多种原因失效,想要更加稳定的使用Job负载,有哪些需要注意的地方?
k8s集群Job Pod 容器可能因为多种原因失效,想要更加稳定的使用Job负载,有哪些需要注意的地方? 面试官:"计数性Job默认完成模式是什么?Indexed模式如何发布自定义索引呢?& ...
- kubectl客户端工具远程连接k8s集群
一.概述 一般情况下,在k8smaster节点上集群管理工具kubectl是连接的本地http8080端口和apiserver进行通讯的,当然也可以通过https端口进行通讯前提是要生成证书.所以说k ...
- kubeadm搭建K8s集群及Pod初体验
基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...
- TFS2018 连接 K8S集群的方法
这一块自己没做测试,与平台樊娟娟沟通后,直接从history命令里面找到的相关命令,感谢原作者以及提供帮助的同事网友.如果有问题后续再改. 1. 在服务里面增加endpoint 见图 创建 连接名称随 ...
- K8s集群认证之RBAC
kubernetes认证,授权概括总结: RBAC简明总结摘要:API Server认证授权过程: subject(主体)----->认证----->授权[action(可做什么)]--- ...
- Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务
前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for deskto ...
- jenkins流水线部署springboot应用到k8s集群(k3s+jenkins+gitee+maven+docker)(2)
前言:上篇已介绍了jenkins在k3s环境部署,本篇继续上篇讲述流水线构建部署流程 1.从gitlab上拉取代码步骤 在jenkins中,新建一个凭证:Manage Jenkins -> Ma ...
- Prometheus 监控K8S集群资源监控
Prometheus 监控K8S集群中Pod 目前cAdvisor集成到了kubelet组件内,可以在kubernetes集群中每个启动了kubelet的节点使用cAdvisor提供的metrics接 ...
随机推荐
- ovirt磁盘类型(IDE, virtio, virtio-scsi)
ovirt磁盘类型辨析(IDE, virtio, virtio-scsi) 通过一张表格,简单明了的说明这三种硬盘的不同: 整体上来看这三者的最大不同还是挂载磁盘的数量.根据在ovirt的上测试,一台 ...
- 实验十四:团队项目评审&课程学习总结
项目 内容 作业所属课程 所属课程 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 任务一:团队项目审核已完成.项目验收过程意见表已上交. 任务二:课程学习 ...
- Oracle之常用sql
SQL函数 本文PDF下载 本文示例数据库下载 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范 ...
- MySQL利用LOCATE,CONCAT查询
SELECT * FROM table t WHERE 1=1 AND LOCATE(#{searchParams},CONCAT(t.account,IFNULL(t.id,''),IFNULL(t ...
- P1657选书-(dfs)
https://www.luogu.org/problemnew/show/P1657 解题:对于某个人喜欢的两本书,选或者是不选! 坑:数据有一组是0的,按dfs会出错,0本书选个屁,有啥意义?不给 ...
- 拓展-教你手把手用纯CSS写轮播图
先看成品图[示例网址:][1] [1]: https://huruji.github.io/css-imitate-js/slider/index.html一.随便说几句####css3动画效果的强大 ...
- php实现隔行换色
<?php $i = 0 ; //声明一个变量 echo "<table width='800' border='1px'>"; //表格开头 设置宽度边框 wh ...
- Linux软件安装——软件包分类、RPM包管理
1.软件包分类: (1)源码包: 优点:开源,即用户可以看到源代码,用户可以修改源代码:可以自由选择所需的功能:软件是编译安装,效率更高. 缺点:需要手动安装,安装慢. (2)二进制包(RPM包.系统 ...
- Xamarin.Forms之XAML
官网参考 XAML基础知识 XAML(eXtensible Application Markup Language)可扩展应用程序标记语言,允许开发者在Xamarin.Forms应用中采用标记而不是代 ...
- JS变量提升和作用域
一.JS变量提升 1.当浏览器引擎解析js代码时,将js中的所有一开始就是var声明的和function声明的都提升到全局.此时又叫全局作用域 console.log(aa); console.log ...