- 创建MySQL的yaml文件
vim mysql-test.yaml
将下述内容复制到yaml文件中
apiVersion: apps/v1 kind: Deployment metadata: name: mysql-test #名称,全局唯一 namespace: default # 默认空间 spec: replicas: 1 #Pod 副本的期待数量 selector: matchLabels: app: mysql # 符合目标的Pod拥有此标签 template: # 根据此模版创建Pod的副本 metadata: labels: app: mysql # Pod副本拥有的标签,对应Selector spec: containers: # Pod的内容的定义部分 - name: mysql # 容器的名称 image: mysql # 容器对应的Docker Image ports: - containerPort: 3306 # 容器应用监听的端口号 env: - name: MYSQL_ROOT_PASSWORD # 设置mysql的初始化密码 value: "123456" # 设置mysql的初始化密码 --- apiVersion: v1 kind: Service # 表明是Kubernetes Service metadata: name: mysql-test # Service 的全局唯一名称 spec: type: NodePort selector: app: mysql ports: # Service 提供服务的端口 - port: 3306 # Service 对应的Pod拥有这里定义的标签
- 检查k8s中是否已经创建了MySQL,如果创建过,删除掉,以免端口冲突
kubectl get pod,svc | grep mysql # 检查是否有MySQL相关的 kubevtl delete deployment pod [pod 名称] kubevtl delete svc [svc 名称]
- 部署MySQL
kubectl apply -f mysql-test.yaml
- 查看pod、svc的状态
kubectl get pods,svc
Pod的状态显示“Running”,说明pod现在是正在运行的状态。svc对外端口号也暴露出来了。
- 内部测试
exec -it mysql-test-5cc477cfcd-stxxs bash # mysql-test-5cc477cfcd-stxxs 为pod名 mysql -u root -p123456 # 进入MySQL测试
- Linux系统测试
mysql -u root -p123456 -h 192.168.2.100 --port=31528
前提是Linux系统中安装了MySQL,如果没有安装,参考文章Linux使用yum安装MySQL