k8s集群上部署mysql服务实践
最近学习k8s相关知识,整理一下第一次部署经验~
在已经搭建好的k8s集群上部署mysql服务主要步骤如下:
1、创建一个新的namespace
2、在该namespace下创建一个deployment
3、deployment自动部署好replicaSet和pod
4、创建对应服务
5、验证是否成功
下面是具体的操作说明
1、创建一个新的namespace
#创建namespace ,命令行直接创建
$ kubectl create namespace test
2、在该namespace下创建一个deployment(env中设置了mysql的root用户的密码为mysql)
(1)编写deployment的对应yaml文件: mysql-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
namespace: test
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:5.6
imagePullPolicy: IfNotPresent
args:
- "--ignore-db-dir=lost+found"
ports:
- containerPort: 3306
env:
- name: MYSQL\_ROOT\_PASSWORD
value: "mysql"
(2)创建deployment
kubectl create -f mysql-deployment.yaml —record
3、deployment自动部署好replicaSet和pod
执行一下命令可以查看test namespace 下自动部署好replicaSet和pod
kubectl get rs -n test
kubectl get pod -n test
4、创建对应服务(注意定义type=NodePort,并对应的nodeport端口号,以便集群外访问该服务)
(1)创建对应的service的yaml文件:mysql-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql-svc
namespace: test
labels:
name: mysql-svc
spec:
type: NodePort
ports:
- port: 3306
protocol: TCP
targetPort: 3306
name: http
nodePort: 33306
selector:
app: mysql(2)创建对应的service
kubectl create -f mysql-svc.yaml —record
5、验证是否成功
在远程客户端上下载mysql客户端Navicat,进行验证
其中
主机:service对应的pod所在的node的ip
端口:上面service中的nodeport端口号
密码:deployment文件env中设置的root用户的密码)
还没有评论,来说两句吧...