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

千里之行,始于足下

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

目 录CONTENT

文章目录

Kubernetes 项目迁移

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

制作镜像

通过运行镜像,制作项目镜像

# 使用运行镜像,创建容器
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
  • 暴露应用
  • 对外发布应用
  • 监控 / 日志
docker镜像分类

集群规划

  • 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代码
0

评论区