测试kubernetes服务发现
处在Kubernetes集群里的web应用怎么访问MySQL呢?Kubernetes自带服务发现。
ok,来测试一下,首先按照kubernetes mysql 部署部署一套mysql。
然后,更改rc的名字重新启动一个pod。比如之前叫mysql-rc,这里更改为mysql-rc2:
apiVersion: v1
kind: ReplicationController
metadata:
name: mysql-rc2
labels:
name: mysql-rc2
spec:
replicas: 1
selector:
name: mysqldb2
template:
metadata:
labels:
name: mysqldb2
spec:
containers:
- name: mysql
image: mysql
imagePullPolicy: IfNotPresent
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "One.00000"
查看新生成的pod:
[root@k8s-master mysql]# kubectl get pods
NAME READY STATUS RESTARTS AGE
curl-debug-7c6df66988-hzv75 1/1 Running 0 13h
my-tomcat-d65f7b88-z4kw9 1/1 Running 0 15h
mysql-rc-wd64j 1/1 Running 0 6h26m
mysql-rc2-bmqcx 1/1 Running 0 3m26s
nginx-pod 1/1 Running 0 13h
# 查看Service
[root@k8s-master mysql]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 15h
mysql-svc NodePort 10.96.161.27 <none> 3306:30306/TCP 6h59m
tomcatapp NodePort 10.106.8.203 <none> 8080:30001/TCP 15h
这里我们用新创建的Pod,使用service的dns名称访问mysql:
[root@k8s-master mysql]# kubectl exec -it mysql-rc2-bmqcx /bin/bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
root@mysql-rc2-bmqcx:/# mysql -u root -p'One.00000' -h mysql-svc

浙公网安备 33010602011771号