" name="sm-site-verification"/>
侧边栏壁纸
博主头像
PySuper博主等级

千里之行,始于足下

  • 累计撰写 203 篇文章
  • 累计创建 14 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Kubernetes | 部署Yearning MySQL SQL 审核平台

PySuper
2021-09-08 / 0 评论 / 0 点赞 / 9 阅读 / 6779 字
温馨提示:
所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

Yearning-Docker

官网:https://yearning.io/

压缩包:https://github.com/cookieY/Yearning/releases/download/2.3.5/Yearning-2.3.5-linux-amd64.zip

# 下载压缩文件
wget https://github.com/cookieY/Yearning/releases/download/2.3.5/Yearning-2.3.5-linux-amd64.zip

# 安装压缩工具、解压文件
yum install -y unzip && unzip Yearning-2.3.5-linux-amd64.zip

# 进入文件夹
cd Yearning-2.3.5-linux-amd64

# 添加Yearning的可执行权限
chmod a+x Yearning

# 使用Dockerfile创建Docker镜像 ==> 创建的时候指定镜像名
docker build -f Dockerfile -t 192.168.111.111/project/yearning:latest .

# 将创建好的Dokcer镜像上传到私有镜像仓库(docker harbor)
docker push 192.168.111.111/project/yearning:latest

# 使用Docker启动Yearning(此实验不使用)
docker run -dit \
--name yearning \					   # 容器名
-p 18000:8000 \						   # 暴露端口
-e MYSQL_ADDR=192.168.111.121:13306 \	# mysql地址
-e MYSQL_USER=root \				   # 登录mysql的用户名
-e MYSQL_PASSWORD=root \			   # 登录密码
-e MYSQL_DB=Yearning \				   # 使用的数据库
192.168.111.111/project/yearning:latest # 使用的镜像名

MySQL-Database

#  查看数据库
show databases;

# 创建数据库==> 这里需要指定类型和编码!!!
REATE DATABASE `Yearning` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

# 删除数据库
drop database Yearning

Kubernetes

登录Docker-Harbor

配置Dokcer登录到docker harbor

# 修改docker配置文件
vi /etc/docker/daemon.json

####################################  daemon.json   ######################################
{
	"registry-mirrors": ["https://giuzc4qh.mirror.aliyuncs.com"],
	"insecure-registries": ["192.168.111.111"]	# 添加:不使用https访问
}
##########################################################################################

# 重载配置文件,并重启docker
systemctl daemon-reload && systemctl restart docker

# 在Kubernetes的各个节点登录docker harbor
docker login 192.168.189.111 -uzheng -pZxt19960417

Secret

apiVersion: v1
kind: Secret
metadata:
  name: db-conf
  namespace: zheng
type: Opaque  # 使用的是generic类型
data:	# 这里配置的是数据库的相关信息,使用base64加密输入:
  addr: cm9vdAweqw==
  user: cm9vdAweqw==
  pass: cm9vdAweqw==
  data: WWVhcm5pbmc=	# echo -n 'Yearning' | base64

Deployment

apiVersion: apps/v1 # API版泵
kind: Deployment  # 资源类型
metadata: # 元数据
  labels: # 标签
    app: SQL-Review
  name: yearning  # deployment的名字
  namespace: zheng  # 所属命名空间
spec: 
  replicas: 3 # 副本数
  selector: # 选择器,选择针对谁做
    matchLabels:
      app: yearning
  template: # 镜像的模板
    metadata: # 元数据
      labels: # 标签
        app: yearning
    spec:
      containers: # 容器信息
        - image: 192.168.189.111/project/yearning  # 容器镜像
          name: yearning # 容器的名字
          imagePullPolicy: IfNotPresent # 镜像的下载策略
          env:	# 容器中的变量
            - name: MYSQL_ADDR
              valueFrom:
                secretKeyRef: # 存储的变量信息
                  name: db-conf
                  key: addr
            - name: MYSQL_USER
              valueFrom:
                secretKeyRef:
                  name: db-conf
                  key: user
            - name: MYSQL_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: db-conf
                  key: pass
            - name: MYSQL_DB
              valueFrom:
                secretKeyRef:
                  name: db-conf
                  key: data
          ports:	# 定义容器中的端口信息
            - containerPort: 8000
              name: web
              protocol: TCP
          readinessProbe:	# 就绪检查
            httpGet:
              path: /
              port: web
              scheme: HTTP
            initialDelaySeconds: 25
            periodSeconds: 2
          livenessProbe:	# 存活检查
            httpGet:
              path: /
              port: web
              scheme: HTTP
            initialDelaySeconds: 30
            periodSeconds: 2
          resources:	# 资源限制
            requests:
              cpu: 200m
              memory: 1Gi
            limits:
              cpu: 250m
              memory: 2Gi

Service

apiVersion: v1
kind: Service
metadata:
  labels:
    app: yearning
  name: yearning
  namespace: zheng
spec:
  ports:
    - port: 80  # svc内部端口,通过clusterIP访问
      protocol: TCP
      targetPort: 8000  # 镜像内服务的端口
  selector: # 标签选择器,与deployment中的标签保持一致
    app: yearning
  type: NodePort  # Service类型

Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: yearing
  namespace: zheng
spec:
  rules:
  	# 需要在本地机器的hosts文件中添加配置:192.168.111.111 www.yearning.com
    - host: www.sql-yearning.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: yearning
                port:
                  number: 80

部署

# 把上面的四个部分,写到yearning.yaml文件中
kubectl apply -f yearning.yaml

查看密码

# 通过查看pod日志的方式,查看用户名和密码
kubectl logs yearning-pod-name -n zheng
k8s-ns-1.png

0

评论区