k8s通过docker desktop启动并且基于docker部署springboot项目

通过docker desktop启动k8s

点击设置按钮进去
在这里插入图片描述
点击下边的k8s 查看自己的版本
在这里插入图片描述
下载对应k8s-for-docker-desktop的版本
配置一下阿里云镜像加速
在这里插入图片描述
在下载好的文件中运行./load_images.sh
然后在设置并apply
在这里插入图片描述
等待一下就可以了

配置 k8s:
kubectl config use-context docker-desktop//如果不对就使用 docker-for-desktop
在这里插入图片描述
验证状态:
kubectl cluster-info
在这里插入图片描述
kubectl get nodes在这里插入图片描述
配置控制台:
kubectl create -f kubernetes-dashboard.yaml
检查应用状态:
kubectl get pod -n kubernetes-dashboard
开启访问代理
kubectl proxy

访问本地链接http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

在这里插入图片描述
生成token
kubectl -n kube-system describe secret default| awk ‘$1==“token:”{print $2}’

1.在写好的项目中添加dockerfile

在这个目录下创建一个docker文件夹,创建文件dockerfile
在这里插入图片描述
dockerfile内容

FROM java:8  //基础镜像 如果没有会自动下载
VOLUME /tmp
ADD system_auth_service-0.0.1-SNAPSHOT.jar auth.jar //前面是打包好的jar名字 后面这个jar和下一行的照应
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/auth.jar"]

在pom添加

<build>
        <plugins>
            <!-- docker插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>docker/${
    
    project.artifactId}</imageName>
                    <!--docker文件所在的目录-->
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${
    
    project.build.directory}</directory>
                            <include>${
    
    project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

先clean,然后install,在docker:build
在这里插入图片描述
使用docker images查看镜像
如果过程没问题就会出现这个项目的镜像
在这里插入图片描述

2.上传镜像到docker hub

进入docker hub中创建一个仓库
然后可以看到旁边的这个命令,后边涂掉的是你自己的仓库名称
在这里插入图片描述
把刚刚docker的镜像修改一下名字
docker tag 镜像名称:版本(要和镜像照应) 修改后的名字(自己的仓库名称)

denied: requested access to the resource is denied //出现这个错误就证明名字修改的不对

docker push 修改后的名字:版本号
可以看到docker hub中出现了这个镜像
在这里插入图片描述

3.创建k8s的yaml文件

apiVersion: v1
kind: Service
metadata:
  name: auth//名称
  namespace: default
spec:
  type: NodePort
  ports:
  - port: 8002 //内置端口
    nodePort: 30010 #service对外开放端口 30000-32767之间
  selector:
    app: auth//名称
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:
  name: auth #名称
spec:
  replicas: 3 #运行容器的副本数,修改这里可以快速修改分布式节点数量
  selector:
    matchLabels:
      app: auth//名称
  template:
    metadata:
      labels:
        app: auth//名称
    spec:
      containers: #docker容器的配置
      - name: auth//名称
        image: xxx //pull的地址 镜像名加版本号
        imagePullPolicy: IfNotPresent #pull镜像时机,
        ports:
        - containerPort: 8002 #容器对外开放端口

运行这个yaml文件:
kubectl apply -f xxx.yaml
然后查看 kubectl get pod
在这里插入图片描述
查看是否启动成功
kubectl get svc
在这里插入图片描述
然后通过30010访问端口
访问成功
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_48358308/article/details/111918783