1.登陆网页界面,找到相应模板。(也可以通过命令行)
2.oc export template mysql-ephemeral -n openshift > mysql-tmp.yaml将模板信息输出为模板资源文件。
[student@workstation wordpress]$ oc export template mysql-ephemeral -n openshift > mysql-tmp.yaml
[student@workstation wordpress]$ cat mysql-tmp.yaml
apiVersion: v1
kind: Template
labels:
template: mysql-ephemeral-template
message: |-
The following service(s) have been created in your project: ${DATABASE_SERVICE_NAME}.
Username: ${MYSQL_USER}
Password: ${MYSQL_PASSWORD}
Database Name: ${MYSQL_DATABASE}
Connection URL: mysql://${DATABASE_SERVICE_NAME}:3306/
For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/README.md.
metadata:
annotations:
description: |-
MySQL database service, without persistent storage. For more information about using this template, including OpenShift considerations, see https://github.com/sclorg/mysql-container/blob/master/5.7/README.md.
WARNING: Any data stored will be lost upon pod destruction. Only use this template for testing
iconClass: icon-mysql-database
openshift.io/display-name: MySQL (Ephemeral)
tags: database,mysql
template.openshift.io/documentation-url: https://docs.openshift.org/latest/using_images/db_images/mysql.html
template.openshift.io/long-description: This template provides a standalone MySQL
server with a database created. The database is not stored on persistent storage,
so any restart of the service will result in all data being lost. The database
name, username, and password are chosen via parameters when provisioning this
service.
template.openshift.io/provider-display-name: Red Hat, Inc.
template.openshift.io/support-url: https://access.redhat.com
creationTimestamp: null
name: mysql-ephemeral
objects:
- apiVersion: v1
kind: Secret
metadata:
name: ${DATABASE_SERVICE_NAME}
stringData:
database-password: ${MYSQL_PASSWORD}
database-root-password: ${MYSQL_ROOT_PASSWORD}
database-user: ${MYSQL_USER}
- apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
name: ${DATABASE_SERVICE_NAME}
spec:
ports:
- name: mysql
nodePort: 0
port: 3306
protocol: TCP
targetPort: 3306
selector:
name: ${DATABASE_SERVICE_NAME}
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
- apiVersion: v1
kind: DeploymentConfig
metadata:
creationTimestamp: null
name: ${DATABASE_SERVICE_NAME}
spec:
replicas: 1
selector:
name: ${DATABASE_SERVICE_NAME}
strategy:
type: Recreate
template:
metadata:
creationTimestamp: null
labels:
name: ${DATABASE_SERVICE_NAME}
spec:
containers:
- capabilities: {}
env:
- name: MYSQL_USER
valueFrom:
secretKeyRef:
key: database-user
name: ${DATABASE_SERVICE_NAME}
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
key: database-password
name: ${DATABASE_SERVICE_NAME}
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: database-root-password
name: ${DATABASE_SERVICE_NAME}
- name: MYSQL_DATABASE
value: ${MYSQL_DATABASE}
image: ' '
imagePullPolicy: IfNotPresent
livenessProbe:
initialDelaySeconds: 30
tcpSocket:
port: 3306
timeoutSeconds: 1
name: mysql
ports:
- containerPort: 3306
protocol: TCP
readinessProbe:
exec:
command:
- /bin/sh
- -i
- -c
- MYSQL_PWD="$MYSQL_PASSWORD" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE
-e 'SELECT 1'
initialDelaySeconds: 5
timeoutSeconds: 1
resources:
limits:
memory: ${MEMORY_LIMIT}
securityContext:
capabilities: {}
privileged: false
terminationMessagePath: /dev/termination-log
volumeMounts:
- mountPath: /var/lib/mysql/data
name: ${DATABASE_SERVICE_NAME}-data
dnsPolicy: ClusterFirst
restartPolicy: Always
volumes:
- emptyDir:
medium: ""
name: ${DATABASE_SERVICE_NAME}-data
triggers:
- imageChangeParams:
automatic: true
containerNames:
- mysql
from:
kind: ImageStreamTag
name: mysql:${MYSQL_VERSION}
namespace: ${NAMESPACE}
lastTriggeredImage: ""
type: ImageChange
- type: ConfigChange
status: {}
parameters:
- description: Maximum amount of memory the container can use.
displayName: Memory Limit
name: MEMORY_LIMIT
required: true
value: 512Mi
- description: The OpenShift Namespace where the ImageStream resides.
displayName: Namespace
name: NAMESPACE
value: openshift
- description: The name of the OpenShift Service exposed for the database.
displayName: Database Service Name
name: DATABASE_SERVICE_NAME
required: true
value: mysql
- description: Username for MySQL user that will be used for accessing the database.
displayName: MySQL Connection Username
from: user[A-Z0-9]{3}
generate: expression
name: MYSQL_USER
required: true
- description: Password for the MySQL connection user.
displayName: MySQL Connection Password
from: '[a-zA-Z0-9]{16}'
generate: expression
name: MYSQL_PASSWORD
required: true
- description: Password for the MySQL root user.
displayName: MySQL root user Password
from: '[a-zA-Z0-9]{16}'
generate: expression
name: MYSQL_ROOT_PASSWORD
required: true
- description: Name of the MySQL database accessed.
displayName: MySQL Database Name
name: MYSQL_DATABASE
required: true
value: sampledb
- description: Version of MySQL image to be used (5.5, 5.6, 5.7, or latest).
displayName: Version of MySQL Image
name: MYSQL_VERSION
required: true
value: "5.7"
3.vim mysql-tmp.yaml 修改模板资源文件。对kind: Template资源下的信息进行修改,修改以下三项。
[student@workstation wordpress]$ vim mysql-tmp.yaml
template: mysql2
openshift.io/display-name: MySQL2
name: mysql2
4.oc apply -f mysql-tmp.yaml -n openshift将模板资源进行声明。再次到网页界面可以到修改后的模板的显示信息。补充部分配置信息。
[student@workstation wordpress]$ oc apply -f mysql-tmp.yaml -n openshift
template "mysql2" created
5.oc project ditto进入项目。oc get pods -o wide查看pod资源信息。oc get svc -o wide查看服务资源信息。
[student@workstation wordpress]$ oc project ditto
Now using project "ditto" on server "https://master.lab.example.com:8443".
[student@workstation wordpress]$ oc get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
mysql-1-fxplk 1/1 Running 0 2m 10.130.0.7 node1.lab.example.com
[student@workstation wordpress]$ oc get svc -o wide
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
mysql 172.30.117.143 <none> 3306/TCP 3m name=mysql