公司从Rancher切换到OpenShift环境 此前我未接触过容器化部署的概念,于是上网查了一下,但是时间比较紧,没有去详细了解,所以这里只谈使用,不谈别的 ,有兴趣的可以了解一下
- 什么是OpenShift
- 什么是k8s
- OpenShift 和 k8s的比较
- 总结版
-
登录
-
进入控制台查看项目
-
选择你要进入的project 注意:现在是administrator
-
查看项目的运行信息 这里面 一般中间件 例如 :nacos,rabbitMq 都会使用Stateful Sets这个模式 这个模式有状态相关的东西
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"
- 切换developer身份点击add 选择闪电标的那个
- 搜索你刚刚导入的模板名称-> 选择 -> 使用
- 输入命名空间 镜像源 点击creat 就创建好了
这里需要注意一下 创建好的ss对应的pvc可能会无法创建成功 需要手动复制pvc名称 删除正在创建的pvc重建 !
- 脚本文件需要留存
- 脚本文件包括两个可执行脚本和一个或者两个配置文件
- 这里以nacos为例
其实和模板 *** 作的步骤是一样的 无非就是没有图形化界面了
起作用的其实就是两个脚本文件
配置文件中 从镜像库往openshift本地库导入镜像库 然后通过读取env配置和模板yml文件生成你想要的
由于是公司的东西 我就截一部分图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)