记录使用minikube部署web程序,并灰度发布不同版本
2023-12-27 20:50:13
    		1. 安装软件
1.1安装docker desktop
下载地址
 重点:配置镜像加速
1.2 安装k8s&minikube
这里参考阿里社区的配置
 minikube1.24.0版本下载地址
 重点:安装版本问题【因为后面要用阿里云的服务来获取所需Docker镜像,一直不成功使用的高版本,所以最后降回了1.24.0】
 启动完成后会在docker启动一个容器,如下
 
2 同步本地镜像到minikube
因为是使用minikube启动的k8s环境,所以如果要使用本地制作的web镜像,还需要把镜像同步到minikube,可以使用以下命令同步:
# General
minikube image load <IMAGE_NAME>
# Example
minikube image load pz/demo
或者是通过使用Minikube的image build, 我们可以在Minikube中直接构建镜像:
# General
minikube image build -t <IMAGE_NAME> .
# Example
minikube image build -t pz/demo .
我使用了第一种方法,成功后可以看到你的镜像已经在minikube容器内的docker镜像列表了【有点套娃的感觉】。
 
3 构建Pod,Service
我这里直接贴出代码:
deploy-v1.yaml
 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment-v1
spec:
  replicas: 2  # 设置副本数量
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: demo:1.0.1
        ports:
        - containerPort: 8833
deploy-v2.yaml
 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment-v2
spec:
  replicas: 2  # 设置副本数量
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-container
        image: demo:1.0.2
        ports:
        - containerPort: 8833
service-config.yaml
 
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - protocol: TCP
    port: 8833  # Service 暴露的端口
    targetPort: 8833  # 将流量转发到 Pod 的 8833 端口
  type: NodePort
然后执行:
kubectl apply -f deploy-v1.yaml
kubectl apply -f deploy-v2.yaml
kubectl apply -f service-config.yaml
然后再去执行就可以访问你的服务了。
minikube service my-service

可以做一些灰度发布操作
1、 先修改deploy-v1.yaml中的副本数量为4个

 此时接口返回
 
2、v2发布占2个副本

 此时接口返回
 
3、关闭v1,v2占用4个副本

 接口返回
 
问题总结
- 不知道minikube内部还存在docker容器环境,一直拉取镜像失败,报错:magePullBackOff类似的,原来是没有正确拉取到镜像。
    			文章来源:https://blog.csdn.net/weixin_43496746/article/details/135249580
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
    	本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!