测试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   
posted @ 2020-06-24 15:52  Oneslide  阅读(420)  评论(0)    收藏  举报