一。构建项目镜像
[root@k8smaster ~]# cat Dockerfile
[root@k8smaster ~]#
[root@k8smaster ~]#
[root@k8smaster ~]# docker build -t ruoyi-admin-jar .
[root@k8smaster ~]# docker images
二。生成部署的资源清单文件boot-deploy.yaml
[root@k8smaster ~]# kubectl create deployment ruoyi-admin --image=ruoyi-admin-jar --dry-run -o yaml > boot-deploy.yaml
[root@k8smaster ~]#
根据实际需求修改清单boot-deploy.yaml:
三 、
1、master镜像ruoyi-admin-jar:latest 导出一份放在node1、node2
docker save ruoyi-admin-jar:latest > ruoyi-admin-jar.tar
ruoyi-admin-jar.tar发到node1、node2
node1、node2节点生成镜像
docker load -i ruoyi-admin-jar.tar
查看节点node1的pod
注:
2、执行kubectl apply -f boot-deploy.yaml 部署
查看deploy控制器和pod
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-62njk 1/1 Running 3 34h
springboot-k8s-b7554d449-d77pn 0/1 ImagePullBackOff 0 101s
tomcat-7d987c7694-59x5l 1/1 Running 2 24h
[root@k8smaster ~]#
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 34h
springboot-k8s 0/1 1 0 2m2s
tomcat 1/1 1 1 24h
因为镜像是在master制作的,而部署会往node部署,所以部署会报没有镜像 ,decribe命令查看pod信息
[root@k8smaster ~]# kubectl describe pod 38-springboot-k8s-575778f6bf-7cj5q
Name: 38-springboot-k8s-575778f6bf-7cj5q
Namespace: default
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 32s default-scheduler Successfully assigned default/38-springboot-k8s-575778f6bf-7cj5q to k8snode
Warning ErrImageNeverPull 2s (x4 over 31s) kubelet Container image "38-springboot-k8s-1.0.0-jar" is not present with pull policy of Never
Warning Failed 2s (x4 over 31s) kubelet Error: ErrImageNeverPull
这块我把master的镜像导出了一份,传到node节点,load下
[root@k8smaster ~]# docker save 38-springboot-k8s-1.0.0-jar:latest > 38-springboot-k8s-1.0.0-jar.tar
[root@k8snode ~]# docker load -i 38-springboot-k8s-1.0.0-jar.tar
74ddd0ec08fa: Loading layer [==================================================>] 238.6MB/238.6MB
26d918ce4c70: Loading layer [==================================================>] 370.6MB/370.6MB
23eb30954c24: Loading layer [==================================================>] 27.17MB/27.17MB
1731b4d6a190: Loading layer [==================================================>] 27.17MB/27.17MB
Loaded image: 38-springboot-k8s-1.0.0-jar:latest
[root@k8snode ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
38-springboot-k8s-1.0.0-jar latest b73e9cf9c676 14 minutes ago 655MB
然后再部署成功了
[root@k8smaster ~]# kubectl apply -f boot-deploy.yaml
deployment.apps/springboot-k8s created
[root@k8smaster ~]# kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 35h
springboot-k8s 1/1 1 1 3s
tomcat 1/1 1 1 25h
[root@k8smaster ~]#
[root@k8smaster ~]#
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-62njk 1/1 Running 3 35h
springboot-k8s-6f7c749dc6-pb4rc 1/1 Running 0 17s
tomcat-7d987c7694-59x5l 1/1 Running 2 25h
上面是通过yaml部署,也可以直接用命令部署
kubectl create deployment springboot-k8s --image=38-springboot-k8s-1.0.0-jar
(1)、出现问题查看节点node1的pod
kubectl get pods -n kube-system
(2)、解决
mv /etc/kubernetes/kubelet.conf /etc/kubernetes/admin.conf
[root@k8smaster ~]# cat Dockerfile
[root@k8smaster ~]#
[root@k8smaster ~]#
[root@k8smaster ~]# docker build -t ruoyi-admin-jar .
[root@k8smaster ~]# docker images
二。生成部署的资源清单文件boot-deploy.yaml
[root@k8smaster ~]# kubectl create deployment ruoyi-admin --image=ruoyi-admin-jar --dry-run -o yaml > boot-deploy.yaml
[root@k8smaster ~]#
根据实际需求修改清单boot-deploy.yaml:
三 、
1、master镜像ruoyi-admin-jar:latest 导出一份放在node1、node2
docker save ruoyi-admin-jar:latest > ruoyi-admin-jar.tar
ruoyi-admin-jar.tar发到node1、node2
node1、node2节点生成镜像
docker load -i ruoyi-admin-jar.tar
查看节点node1的pod
注:
2、执行kubectl apply -f boot-deploy.yaml 部署
查看deploy控制器和pod
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-62njk 1/1 Running 3 34h
springboot-k8s-b7554d449-d77pn 0/1 ImagePullBackOff 0 101s
tomcat-7d987c7694-59x5l 1/1 Running 2 24h
[root@k8smaster ~]#
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 34h
springboot-k8s 0/1 1 0 2m2s
tomcat 1/1 1 1 24h
因为镜像是在master制作的,而部署会往node部署,所以部署会报没有镜像 ,decribe命令查看pod信息
[root@k8smaster ~]# kubectl describe pod 38-springboot-k8s-575778f6bf-7cj5q
Name: 38-springboot-k8s-575778f6bf-7cj5q
Namespace: default
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 32s default-scheduler Successfully assigned default/38-springboot-k8s-575778f6bf-7cj5q to k8snode
Warning ErrImageNeverPull 2s (x4 over 31s) kubelet Container image "38-springboot-k8s-1.0.0-jar" is not present with pull policy of Never
Warning Failed 2s (x4 over 31s) kubelet Error: ErrImageNeverPull
这块我把master的镜像导出了一份,传到node节点,load下
[root@k8smaster ~]# docker save 38-springboot-k8s-1.0.0-jar:latest > 38-springboot-k8s-1.0.0-jar.tar
[root@k8snode ~]# docker load -i 38-springboot-k8s-1.0.0-jar.tar
74ddd0ec08fa: Loading layer [==================================================>] 238.6MB/238.6MB
26d918ce4c70: Loading layer [==================================================>] 370.6MB/370.6MB
23eb30954c24: Loading layer [==================================================>] 27.17MB/27.17MB
1731b4d6a190: Loading layer [==================================================>] 27.17MB/27.17MB
Loaded image: 38-springboot-k8s-1.0.0-jar:latest
[root@k8snode ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
38-springboot-k8s-1.0.0-jar latest b73e9cf9c676 14 minutes ago 655MB
然后再部署成功了
[root@k8smaster ~]# kubectl apply -f boot-deploy.yaml
deployment.apps/springboot-k8s created
[root@k8smaster ~]# kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 35h
springboot-k8s 1/1 1 1 3s
tomcat 1/1 1 1 25h
[root@k8smaster ~]#
[root@k8smaster ~]#
[root@k8smaster ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-6799fc88d8-62njk 1/1 Running 3 35h
springboot-k8s-6f7c749dc6-pb4rc 1/1 Running 0 17s
tomcat-7d987c7694-59x5l 1/1 Running 2 25h
上面是通过yaml部署,也可以直接用命令部署
kubectl create deployment springboot-k8s --image=38-springboot-k8s-1.0.0-jar
(1)、出现问题查看节点node1的pod
kubectl get pods -n kube-system
(2)、解决
mv /etc/kubernetes/kubelet.conf /etc/kubernetes/admin.conf