首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从集群外部连接到状态集内的特定吊舱

从集群外部连接到状态集内的特定吊舱
EN

Stack Overflow用户
提问于 2019-12-11 10:30:22
回答 1查看 321关注 0票数 0

我有一个StatefulSet,它与StatefulSet Kubernetes教程中描述的匹配,后者创建了mysql主/从结构。我有以下kubernetes对象:

代码语言:javascript
运行
复制
    NAME          READY   STATUS    RESTARTS   AGE
pod/mysql-0   2/2     Running   7          23h
pod/mysql-1   2/2     Running   6          23h
pod/mysql-2   2/2     Running   6          23h

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/kubernetes   ClusterIP   10.152.183.1    <none>        443/TCP    21d
service/mysql        ClusterIP   None            <none>        3306/TCP   23h
service/mysql-read   ClusterIP   10.152.183.89   <none>        3306/TCP   23h

NAME                     READY   AGE
statefulset.apps/mysql   3/3     23h

编辑: mysql和mysql读取服务连接到所有mysql吊舱。

节点在我的计算机上,我正在使用microk8s。

现在,我有一个小程序运行在我的计算机上(而不是在集群中),我想连接到StatefulSet中的主程序(mysql-0)。Id需要类似于只与mysql-0连接的服务。关于如何做到这一点有什么建议吗?

编辑:这个想法是为了找到一个解决方案,允许我只使用.yaml文件部署集群。找一个比kubectl apply更多的命令是不有趣的

该方案如下:

代码语言:javascript
运行
复制
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost??",
  user="root",
  passwd="",
  database="testtable"
)

mycursor = mydb.cursor()

sql = "INSERT INTO testtable (name) VALUES (%s)"
val = ("holaquetal")
mycursor.execute(sql, val)

mydb.commit()

我想我可以在MySQL0-pod中添加一个不同的标签,并添加一个查找该标签的NodePort服务,但是我不想通过命令行来完成它。可以在StatefulSet yaml?中添加一个标签到mysql-0中吗?

另一个想法可能是对microk8s提供的DNS服务器执行查询DNS,查找"mysql.mysql-0",但我不知道如何将程序连接到DNS服务器,以便我可以使用host=mysql.mysql-0或整个CNAME。

EN

回答 1

Stack Overflow用户

发布于 2019-12-11 10:43:59

如果节点在您的计算机上,那么可以使用port-forward将mysql端口从吊舱转发到本地。试试这个:

kubectl port-forward mysql-0 3306:3306

或者直接转发给您的主服务部门。

kubectl port-forward svc/mysql-read 3306:3306

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59283704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档