制作镜像
通过运行镜像,制作项目镜像
# 使用运行镜像,创建容器
docker run -dit --name=zheng-blog --net=host realite/python3.6 /bin/bash
# 进入容器,在docker中测试项目
docker exec -it zheng-blog /bin/bash
# 编写Dockerfile,制作项目镜像
docker build -f Dockerfile -t docker_name:docker_tag .
# 将项目镜像保存到镜像文件
docker save image_name > ./save_image_name.tar.gz
导入镜像
# 将镜像文件发送到worker节点
scp docker_tar zheng@worker-1:/project
# 加载镜像文件
cd /project
sudo docker load -i docker_tar
将镜像启动为pod
# 使用干跑,制作yaml文件
kubectl create deployment deployment_name --image=image_name --dry-run -o yaml > yaml_name.yaml
# 在 yaml_name.yaml 中的containers下添加:
imagePullPolicy: Never # 什么情况下在网络上拉取资源:never永远不
command: [ "/bin/bash", "-c", "--" ]
args: [ "while true; do sleep 30; done;" ]
# 修改指定的副本数量
vim yaml_name.yaml
# 通过yaml文件,创建deployment
kubectl apply -f yaml_name.yaml
# 查看deployment
kubectl get deployment
kubectl get pods
# 删除deployment
kubectl delete deployment deployment_name
暴露应用
需要设置:接受的端口,发送的端口,发送给谁的端口
# 使用干跑,制作yaml文件
kubectl expose deployment deployment_name --target-port=9000 --type=NodePort --port=80 -o yaml > svc_djangotest.yaml
# --target-port=8080 指定转发给哪一个端口
# --type=NodePort 接受数据的端口设为随机(自己监听的端口)
# --port=80 从哪个端口向外发送数据
# -o yaml >svc_name.yaml 输出yaml文件,存储到svc_name.yaml文件中
# 通过yaml文件,指定暴露的对端口
kubectl apply -f svc_name.yaml
# 查看访问的端口
kubectl get service
# 访问任意一个worker节点的指定端口
总结
迁移流程
- 制作镜像
- 导入镜像
- 将镜像启动为pod
- 暴露应用
- 对外发布应用
- 监控 / 日志
集群规划
- Kubernetes:
- master:172.16.23.51
- worker:172.16.23.51 172.16.23.61 172.16.23.62
- MySQL:
- 理应采用SQL集群
- 这里使用一个节点:172.16.23.3
- 项目
- DjangoWeb
- 代码
- Python代码
评论区