【发布时间】:2017-11-07 03:54:07
【问题描述】:
我是 Kubernetes 的新手,我知道我遗漏了一些小东西,但看不到什么。 我正在创建一个带有文件的 pod:kubectl create -f mysql.yaml
apiVersion: v1
kind: Pod
metadata:
name: mysql
labels:
name: mysql
spec:
containers:
- resources:
limits :
cpu: 2
image: mysql
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
# change this
value: TestingDB1
ports:
- containerPort: 3306
name: mysql
还有一个服务:kubectl create -f mysql_service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
name: mysql
name: mysql
spec:
externalIPs:
- 10.19.13.127
ports:
- port: 3306
selector:
name: mysql
“kubectl 版本”的输出
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"d33fd89e399396658aed4e48dfe7d5d8d50ac6e8", GitTreeState:"clean", BuildDate:"2017-05-26T17:08:24Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"d33fd89e399396658aed4e48dfe7d5d8d50ac6e8", GitTreeState:"clean", BuildDate:"2017-05-26T17:08:24Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
“kubectl 集群信息”的输出
Kubernetes master is running at http://localhost:8080
“kubectl get pods”的输出
NAME READY STATUS RESTARTS AGE
mysql 1/1 Running 0 20m
“kubectl get svc”的输出
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.254.0.1 <none> 443/TCP 18h
mysql 10.254.129.206 10.19.13.127 3306/TCP 1h
“kubectl get no”的输出
NAME STATUS AGE
10.19.13.127 Ready 19h
“docker ps”的输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
74ea1fb2b383 mysql "docker-entrypoint.sh" 3 minutes ago Up 3 minutes k8s_mysql.ae7893ad_mysql_default_e58d1c09-4a8e-11e7-9baf-fa163ee3f5d9_793d8d7c
我可以看到 Pod 正在正常创建。即使我连接到容器,我也可以使用凭据登录到 mysql。
我的问题是: 如何从我的网络访问/公开在我的 kubernetes 节点上运行的端口?例如,我想从我的 PC 远程登录到运行 mysql pod 的 kubernetes 节点。
谢谢!
【问题讨论】:
-
通过该配置,您应该能够通过 10.19.13.127:3306 访问您的 pod。你试过“telnet 10.19.13.127 3306”吗?发生什么了?你检查过防火墙规则吗?
标签: docker kubernetes