通过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访问端口
访问成功