The springboot project packages the image and deploys it to the image warehouse
Log in to the private image warehouse and pull the image
Create deployment
Expose service access port
Log in private The warehouse needs to create a secret to store the authentication information of the docker registry
~$ kubectl create secret docker-registry fdf-docker-secret --docker-server=registry.cn-chengdu.aliyuncs.com --docker-username=17602117026 --docker-password=用户密码 secret/fdf-docker-secret created ~$ ~$ ~$ kubectl get secret NAME TYPE DATA AGE fdf-docker-secret kubernetes.io/dockerconfigjson 1 15s
After it is created, it needs to be mounted to the pod later
Quickly create a deployment and export the yaml file
~$ kubectl create deployment k8sdemo --image=registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0 --dry-run=client -o yaml > k8sdemo.yaml ~$ cat k8sdemo.yaml apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: k8sdemo name: k8sdemo spec: replicas: 1 selector: matchLabels: app: k8sdemo strategy: {} template: metadata: creationTimestamp: null labels: app: k8sdemo spec: containers: - image: registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0 name: k8s-test resources: {} status: {} ~$
Modify the k8sdemo.yaml file
#1.修改副本数量为2 #2.挂在secret apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: k8sdemo name: k8sdemo spec: replicas: 2 selector: matchLabels: app: k8sdemo strategy: {} template: metadata: creationTimestamp: null labels: app: k8sdemo spec: imagePullSecrets: - name: fdf-docker-secret containers: - image: registry.cn-chengdu.aliyuncs.com/fandf/k8s-test:1.0.0 name: k8s-test resources: {} status: {}
~$ kubectl apply -f k8sdemo.yaml deployment.apps/k8sdemo created ~$ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE k8sdemo 0/2 2 0 12s ~$ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE k8sdemo 2/2 2 2 24s ~$ kubectl get pod NAME READY STATUS RESTARTS AGE k8sdemo-65d45fb49f-l4kx5 1/1 Running 0 28s k8sdemo-65d45fb49f-pqsjw 1/1 Running 0 28s
#port 服务端口 target-port pod端口 ~$ kubectl expose deploy k8sdemo --port=9001 --target-port=9001 --type=NodePort service/k8sdemo exposed ~$ ~$ kubectl get svc k8sdemo NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE k8sdemo NodePort 10.96.10.79 <none> 9001:31921/TCP 12s ~$ curl http://127.0.0.1:31921/api/v1/user/name zhangsan
You can see that the IP of serviced is 10.96.10.79 and the external port is 31921. The security group needs to open this port to access it.
Even if our service deployment is completed here, take a look at all the nodes
~$ kubectl get secret,pod,svc,deploy NAME TYPE DATA AGE secret/fdf-docker-secret kubernetes.io/dockerconfigjson 1 52m NAME READY STATUS RESTARTS AGE pod/k8sdemo-65d45fb49f-l4kx5 1/1 Running 0 39m pod/k8sdemo-65d45fb49f-pqsjw 1/1 Running 0 39m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/k8sdemo NodePort 10.96.10.79 <none> 9001:31921/TCP 5m51s service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 301d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/k8sdemo 2/2 2 2 39m ~$
The above is the detailed content of How to deploy springboot project to k8s. For more information, please follow other related articles on the PHP Chinese website!