1、在k8s中部署利用流程
- 制作镜像(个别通过Dockerfile)
1、hub.docker.com(规范镜像)
2、满足个性化定制化需要(标准化、调优参数等) - 控制器治理Pod
- 裸露应用服务
- 对外公布利用
- 治理日志/集群监控
2、应用Deployment部署Java利用
[root@k8s-m ~]# docker run -d --name=web -p 80:80 e a=test nginx
[root@k8s-m ~]# kubectl create --help[root@k8s-m ~]# kubectl create deployment --help
[root@k8s-m ~]# docker pull yejf/java-demo
[root@k8s-m ~]# kubectl create deployment web --image=yejf/java-demo:latest[root@k8s-m ~]# kubectl get podNAME READY STATUS RESTARTS AGEnginx-f89759699-bxftk 1/1 Running 0 17hweb-7757ff5c-pt6jd 1/1 Running 0 83s
[root@k8s-m ~]# kubectl get deploy,podsNAME READY UP-TO-DATE AVAILABLE AGEdeployment.apps/nginx 1/1 1 1 2d16hdeployment.apps/web 1/1 1 1 2m53sNAME READY STATUS RESTARTS AGEpod/nginx-f89759699-bxftk 1/1 Running 0 17hpod/web-7757ff5c-pt6jd 1/1 Running 0 2m53s
[root@k8s-m ~]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESnginx-f89759699-bxftk 1/1 Running 0 17h 10.244.215.77 k8s-n1 <none> <none>web-7757ff5c-pt6jd 1/1 Running 0 5m55s 10.244.111.205 k8s-n2 <none> <none>[root@k8s-m ~]#
[root@k8s-m ~]# kubectl expose deployment web --port=80 --target-port=8080 --name=web --type=NodePort
[root@k8s-m ~]# kubectl get serviceNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d17hnginx NodePort 10.100.4.40 <none> 80:30026/TCP 2d16hweb NodePort 10.104.68.193 <none> 80:32583/TCP 47s[root@k8s-m ~]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d17hnginx NodePort 10.100.4.40 <none> 80:30026/TCP 2d16hweb NodePort 10.104.68.193 <none> 80:32583/TCP 51s
http://192.168.X.63:32853
3、应用YAML部署Java利用
# vim java-demo.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: java-demo namespace: defaultspec: replicas: 1 selector: matchLabels: app: java-demo template: metadata: labels: app: java-demo spec: containers: - name: nginx image: yejf/java-demo ports:
[root@k8s-m ~]# kubectl apply -f java-demo.yamldeployment.apps/java-demo created[root@k8s-m ~]# kubectl get deployNAME READY UP-TO-DATE AVAILABLE AGEjava-demo 1/1 1 1 41snginx 1/1 1 1 2d17hweb 1/1 1 1 27m[root@k8s-m ~]# kubectl get podNAME READY STATUS RESTARTS AGEjava-demo-d9787d978-7dcp6 1/1 Running 0 50snginx-f89759699-bxftk 1/1 Running 0 18hweb-7757ff5c-pt6jd 1/1 Running 0 28m