1、 创建namespace.yaml文件
[root@k8s-master1 ~]# cat namespase.yaml
apiVersion: v1 #类型为Namespace
kind: Namespace #类型为Namespace
metadata:
name: test #命名空间名称
labels:
name: mysql
然后应用到k8s中
kubectl create -f namespace.yaml
2、 创建deployment.yaml文件
[root@k8s-master1 ~]# cat deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: mysql #为该Deployment设置key为app,value为mysql的标签
name: mysql
namespace: test
spec:
replicas: 1 #副本数量
selector: #标签选择器,与上面的标签共同作用
matchLabels: #选择包含标签app:nginx的资源
app: mysql
template: #这是选择或创建的Pod的模板
metadata: #Pod的元数据
labels: #Pod的标签,上面的selector即选择包含标签app:nginx的Pod
app: mysql
spec: #期望Pod实现的功能(即在pod中部署)
containers: #生成container,与docker中的container是同一种
- name: mysql
image: mysql:5.7 #使用镜像mysql: 创建container,该container默认3306端口可访问
ports:
- containerPort: 3306 # 开启本容器的3306端口可访问
env:
- name: MYSQL_ROOT_PASSWORD
value: hjj123456
volumeMounts: #挂载持久存储卷
- name: mysql-data #挂载设备的名字,与volumes[*].name 需要对应
mountPath: /var/lib/mysql #挂载到容器的某个路径下
- name: mysql-dev-conf
mountPath: /etc/mysql
volumes:
- name: mysql-data #和上面保持一致 这是本地的文件路径,上面是容器内部的路径
nfs:
server: 10.0.19.129 #nfs的ip地址
path: /opt/data/mysql/data #此路径需要实现创建
- name: mysql-dev-conf
nfs:
server: 10.0.19.129
name: /opt/data/mysql/cnf #此路径需要实现创建
然后应用到k8s中
kubectl create -f deployment.yaml
3、创建service.yaml文件
[root@k8s-master1 ~]# cat service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
app: mysql
name: mysql
namespace: test
spec:
ports:
- port: 3306 #写nginx本身端口
name: mysql
protocol: TCP
targetPort: 3306 # 容器nginx对外开放的端口 上面的dm已经指定了
nodePort: 31090 #外网访问的端口
selector:
app: mysql #选择包含标签app:nginx的资源
type: NodePort
然后应用到k8s中
kubectl create -f ./service.yaml
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75672.html