java服务构建镜像:http://blog.csdn.net/LXYuuuuu/article/details/108595585
nginx+vue(static)构建镜像:http://blog.csdn.net/LXYuuuuu/article/details/108602739
tomcat++jdk+war/vuestatic)构建镜像:http://blog.csdn.net/LXYuuuuu/article/details/108625814
1.k8s部署(两种方式)
1.1 页面部署
-
命名空间可以再下拉框中进行添加
- 镜像拉取的secret
-
如果首次添加harbor,需要如下配置
-
根据配置的harbor域名,登录到harbor当中,如:
docker login 10.81.22.192:9090
-
输入用户名和密码,即可登录成功。登录完成之后会在config.json文件中保存授权令牌。通过以下命令查看config.json
cat ~/.docker/config.json
-
文件内容如下
-
{ "auths": { "10.81.22.192:9090": { "auth": "YWRtaW46SGFyYm9yMTIzNDU=" } }, "HttpHeaders": { "User-Agent": "Docker-Client/18.06.1-ce (linux)" } }
-
-
同
cat /root/.docker/config.json | base64 -w 0
设置 -
命令生成secret
-
kubectl create secret docker-registry harbor-sat-31 --namespace=maintenance --docker-server=172.18.10.31:9090 --docker-username=admin --docker-password=Harbor12345 --docker-email=admin@example.com
-
-
- 镜像拉取的secret
- 如果已经添加好harbor,在主节点执行`cat /root/.docker/config.json | base64 -w 0`
得到Base64 编码内容,可以在下拉框中进行添加,自定义名称,将得到的编码内容拷贝即可
- 指定节点
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200915110415808.png#pic_center)
- 注意在spec子标签中添加
- 其中node:k8snode2是命令设置的label
- kubectl label node k8snode2 node=k8snode2(设置标签)
- kubectl get nodes --show-labels(查看所有标签)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020091511050618.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xYWXV1dXV1,size_16,color_FFFFFF,t_70#pic_center)
- 指定端口
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200915110617536.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xYWXV1dXV1,size_16,color_FFFFFF,t_70#pic_center)
- 在指定位置修改需要设置的端口即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200915110637252.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xYWXV1dXV1,size_16,color_FFFFFF,t_70#pic_center)
**1.2 k8s yaml编写部署服务**
- 命令生成文件(也可以直接使用下面的文件)
```java
kubectl create deployment java-demo --image=10.81.22.192:9090/test/springbootdemo:20200911075759 --port=9084 --dry-run -o yaml > deploy.yaml
-
vim deploy.yaml
apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: java-demo-2020019141404 #自定义 name: java-demo-2020019141404 #自定义 spec: replicas: 1 selector: matchLabels: app: java-demo-2020019141404 #自定义 strategy: {} template: metadata: creationTimestamp: null labels: app: java-demo-2020019141404 #自定义 spec: nodeSelector: node: k8snode2 #指定节点,同页面配置 containers: - image: 10.81.22.192:9090/test/springbootdemo:20200911075759 #镜像 name: springbootdemo-2020019141404 #容器名称 ports: - containerPort: 9084 #端口 resources: {} status: {}
运行:kubectl apply -f deploy.yaml # 运行生成Deployment
-
命令生成文件(也可以直接使用下面的文件)
kubectl expose deployment java-demo --port=9084 --target-port=9084 --type=Nodeport -o yaml --dry-run > svc.yaml
-
vim svc.yaml
apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: java-demo-2020019141404 # 同deploy.yaml 内设置 name: java-demo-2020019141404 # 同deploy.yaml 内设置 spec: ports: - port: 9084 protocol: TCP targetPort: 9084 nodePort: 62459 # 对外指定端口 selector: app: java-demo-2020019141404 # 同deploy.yaml 内设置 type: NodePort # 如果需要对外指定端口,需要此配置 status: loadBalancer: {}
运行:kubectl apply -f svc.yaml # 运行生成service