关于容器:模块四-Kubernetes应用程序生命周期管理

29次阅读

共计 2083 个字符,预计需要花费 6 分钟才能阅读完成。

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 pod
NAME                          READY   STATUS    RESTARTS   AGE
nginx-f89759699-bxftk         1/1     Running   0          17h
web-7757ff5c-pt6jd            1/1     Running   0          83s
[root@k8s-m ~]# kubectl get deploy,pods
NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx        1/1     1            1           2d16h
deployment.apps/web          1/1     1            1           2m53s

NAME                              READY   STATUS    RESTARTS   AGE
pod/nginx-f89759699-bxftk         1/1     Running   0          17h
pod/web-7757ff5c-pt6jd            1/1     Running   0          2m53s
[root@k8s-m ~]# kubectl get pod -o wide
NAME                          READY   STATUS    RESTARTS   AGE     IP               NODE     NOMINATED NODE   READINESS GATES
nginx-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 service
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        2d17h
nginx        NodePort    10.100.4.40      <none>        80:30026/TCP   2d16h
web          NodePort    10.104.68.193    <none>        80:32583/TCP   47s
[root@k8s-m ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP        2d17h
nginx        NodePort    10.100.4.40      <none>        80:30026/TCP   2d16h
web          NodePort    10.104.68.193    <none>        80:32583/TCP   51s

http://192.168.X.63:32853

3、应用 YAML 部署 Java 利用

# vim java-demo.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: java-demo
  namespace: default
spec:
  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.yaml
deployment.apps/java-demo created
[root@k8s-m ~]# kubectl get deploy
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
java-demo    1/1     1            1           41s
nginx        1/1     1            1           2d17h
web          1/1     1            1           27m
[root@k8s-m ~]# kubectl get pod
NAME                          READY   STATUS    RESTARTS   AGE
java-demo-d9787d978-7dcp6     1/1     Running   0          50s
nginx-f89759699-bxftk         1/1     Running   0          18h
web-7757ff5c-pt6jd            1/1     Running   0          28m

2、利用部署 / 降级、回滚和弹性伸缩

正文完
 0