Yearning-Docker
压缩包: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
评论区