kubernetes pod + harbor

kubernetes pod + harbor

pod

pod资源管理
特点:
最小部署单元
一组容器的集合
一个pod中的容器共享网络命名空间
pod是短暂的

pod容器分类

1:infrastructure container 基础容器
//维护整个Pod网络空间
//node节点操作
//查看容器的网络

[root@node1 ~]# cat /opt/kubernetes/cfg/kubelet


KUBELET_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=192.168.20.20 \
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \
--bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \
--config=/opt/kubernetes/cfg/kubelet.config \
--cert-dir=/opt/kubernetes/ssl \
--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"  //基础容器

//每次创建Pod时候就会创建,与Pod对应的,对于用户是透明的

[root@node1 ~]# docker ps -a 
registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0   "/pause"

2:initcontainers 初始化容器
//先于业务容器开始执行,原先Pod中容器是并行开启,现在进行了改进

3:container 业务容器
//并行启动
官方网站
https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

镜像拉取策略(image PullPolicy)

IfNotPresent:默认值,镜像在宿主机上不存在时才拉取
Always:每次创建Pod都会重新拉取一次镜像
Never:Pod永远不会主动拉取这个镜像
https://kubernetes.io/docs/concepts/containers/images

//master1操作

[root@master ~]# kubectl edit deployment/nginx
# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: 2020-10-11T11:40:34Z
  generation: 1
  labels:
    run: nginx
  name: nginx
  namespace: default
  resourceVersion: "80812"
  selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/nginx
  uid: 935beca5-0bb6-11eb-aede-000c29959657
spec:
  progressDeadlineSeconds: 600
  replicas: 3
  revisionHistoryLimit: 2
  selector:
    matchLabels:
      run: nginx
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: nginx
    spec:
      containers:
      - image: nginx:latest
        imagePullPolicy: Always  //IfNotPresent Always Never
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 30
status:
  availableReplicas: 3
  conditions:
  - lastTransitionTime: 2020-10-11T11:40:34Z
    lastUpdateTime: 2020-10-11T11:40:38Z
    message: ReplicaSet "nginx-7697996758" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  - lastTransitionTime: 2020-10-12T08:30:33Z
    lastUpdateTime: 2020-10-12T08:30:33Z
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  observedGeneration: 1
  readyReplicas: 3
  replicas: 3
  updatedReplicas: 3
[root@master ~]# cd demo/
[root@master demo]# vim pod1.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: nginx
      image: nginx
      imagePullPolicy: Always
      command: [ "echo", "SUCCESS" ]

[root@master demo]# kubectl create -f pod1.yaml 
pod/mypod created

[root@master demo]# kubectl get pods
NAME                              READY   STATUS      RESTARTS   AGE
mypod                             0/1     Completed   0          25s
[root@master demo]# kubectl get pods
NAME                              READY   STATUS             RESTARTS   AGE
mypod                             0/1     CrashLoopBackOff   1          47s

//失败的状态的原因是因为命令启动冲突
删除 command: [ “echo”, “SUCCESS” ]
//同时更改一下版本
image: nginx:1.14
//删除原有的资源

[root@master demo]# kubectl delete -f pod1.yaml 
pod "mypod" deleted

//更新资源

[root@master demo]# kubectl apply -f pod1.yaml 
pod/mypod created
[root@master demo]# kubectl get pods
NAME                              READY   STATUS              RESTARTS   AGE
mypod                             0/1     ContainerCreating   0          7s
[root@master demo]# kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
mypod                             1/1     Running   0          18s

//查看分配节点

[root@master demo]# kubectl get pods -o wide
NAME                              READY   STATUS    RESTARTS   AGE   IP            NODE            NOMINATED NODE
mypod                             1/1     Running   0          88s   172.17.59.5   192.168.20.30   <none>

//在任意node节点使用curl 查看头部信息
//node节点操作

[root@node2 ~]# curl -I 172.17.59.5
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 12 Oct 2020 09:01:56 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes

//如果节点查看时出现 拒绝连接

[root@node1 ~]# curl -I 172.17.59.5
curl: (7) Failed connect to 172.17.59.5:80; 拒绝连接
[root@node1 ~]# ip a  //查看flanneld和docker地址
[root@node1 ~]# systemctl status flanneld.service  //如果地址没问题,查看flanneld状态
● flanneld.service - Flanneld overlay address etcd agent
   Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 六 2020-10-10 15:44:42 CST; 2 days ago
 Main PID: 79092 (code=exited, status=0/SUCCESS)
解决,所有节点都重启flanneld和docker
[root@node1 ~]# systemctl start flanneld.service 
[root@node1 ~]# systemctl restart docker 
[root@node2 ~]# systemctl start flanneld.service 
[root@node2 ~]# systemctl restart docker
注意:这时分配的节点会发生变动,需要重新查看
[root@master demo]# kubectl get pods -o wide
NAME                              READY   STATUS    RESTARTS   AGE   IP            NODE            NOMINATED NODE
mypod                             1/1     Running   1          14m   172.17.93.5   192.168.20.30   <none>
[root@node1 ~]# curl -I 172.17.93.5
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 12 Oct 2020 09:13:48 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes
[root@node2 ~]# curl -I 172.17.93.5
HTTP/1.1 200 OK
Server: nginx/1.14.2
Date: Mon, 12 Oct 2020 09:22:52 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 04 Dec 2018 14:44:49 GMT
Connection: keep-alive
ETag: "5c0692e1-264"
Accept-Ranges: bytes

私有仓库harbor

master1:192.168.20.10 kube-apiserver kube-controller-manager kube-scheduler etcd
master2:192.168.20.40
node1:192.168.20.20 kubelet kube-proxy docker flannel etcd
node2:192.168.20.30 kubelet kube-proxy docker flannel etcd
漂移地址:192.168.20.111
负载均衡LoadBalance
lb01:master 192.168.20.50
lb02:backup 192.168.20.60
Harbor私有仓库:192.168.20.70

[root@localhost ~]# hostnamectl set-hostname harbor
[root@localhost ~]# su

//安装docker环境
//部署harbor创建私有项目
//查看 Docker-Compose 版本判断安装是否成功
//拖入docker-compose

[root@harbor ~]# cp docker-compose /usr/local/bin/
[root@harbor ~]# chmod +x /usr/local/bin/docker-compose
[root@harbor ~]# docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3

//下载 Harbor 安装程序

[root@harbor ~]# wget http:// harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
[root@harbor ~]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/

[root@harbor ~]# vim /usr/local/harbor/harbor.cfg
  5 hostname = 192.168.20.70

//启动 Harbor

[root@harbor ~]# sh /usr/local/harbor/install.sh

//查看 Harbor 启动镜像

[root@harbor ~]# docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
vmware/harbor-log           v1.2.2              36ef78ae27df        2 years ago         200MB
vmware/harbor-jobservice    v1.2.2              e2af366cba44        2 years ago         164MB
vmware/harbor-ui            v1.2.2              39efb472c253        2 years ago         178MB
vmware/harbor-adminserver   v1.2.2              c75963ec543f        2 years ago         142MB
vmware/harbor-db            v1.2.2              ee7b9fa37c5d        2 years ago         329MB
vmware/nginx-photon         1.11.13             6cc5c831fc7f        3 years ago         144MB
vmware/registry             2.6.2-photon        5d9100e4350e        3 years ago         173MB
vmware/postgresql           9.6.4-photon        c562762cbd12        3 years ago         225MB
vmware/clair                v2.0.1-photon       f04966b4af6c        3 years ago         297MB
vmware/harbor-notary-db     mariadb-10.1.10     64ed814665c6        3 years ago         324MB
vmware/notary-photon        signer-0.5.0        b1eda7d10640        3 years ago         156MB
vmware/notary-photon        server-0.5.0        6e2646682e3c        3 years ago         157MB
photon                      1.0                 e6e4e4a2ba1b        4 years ago         128MB

//查看容器

[root@harbor ~]# docker ps -a
CONTAINER ID        IMAGE                              COMMAND                  CREATED             STATUS              PORTS                                                              NAMES
5d2c732fb68a        vmware/harbor-jobservice:v1.2.2    "/harbor/harbor_jobs…"   42 minutes ago      Up 42 minutes                                                                          harbor-jobservice
3afa1c9fa978        vmware/nginx-photon:1.11.13        "nginx -g 'daemon of…"   42 minutes ago      Up 42 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp   nginx
13329c20fb73        vmware/harbor-ui:v1.2.2            "/harbor/harbor_ui"      42 minutes ago      Up 42 minutes                                                                          harbor-ui
c19d427d1cce        vmware/registry:2.6.2-photon       "/entrypoint.sh serv…"   42 minutes ago      Up 42 minutes       5000/tcp                                                           registry
d241785fbfd6        vmware/harbor-db:v1.2.2            "docker-entrypoint.s…"   42 minutes ago      Up 42 minutes       3306/tcp                                                           harbor-db
998d134ee01d        vmware/harbor-adminserver:v1.2.2   "/harbor/harbor_admi…"   42 minutes ago      Up 42 minutes                                                                          harbor-adminserver
a6265f2e0279        vmware/harbor-log:v1.2.2           "/bin/sh -c 'crond &…"   42 minutes ago      Up 42 minutes       127.0.0.1:1514->514/tcp                                            harbor-log

[root@harbor ~]# cd /usr/local/harbor/
[root@harbor harbor]# docker-compose ps
       Name                     Command               State                           Ports                        
-------------------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/harbor_adminserver       Up                                                           
harbor-db            docker-entrypoint.sh mysqld      Up      3306/tcp                                             
harbor-jobservice    /harbor/harbor_jobservice        Up                                                           
harbor-log           /bin/sh -c crond && rm -f  ...   Up      127.0.0.1:1514->514/tcp                              
harbor-ui            /harbor/harbor_ui                Up                                                           
nginx                nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp,        
                                                              0.0.0.0:80->80/tcp                                   
registry             /entrypoint.sh serve /etc/ ...   Up      5000/tcp                                             

[root@harbor harbor]# setenforce 0
[root@harbor harbor]# iptables -F

如果一切都正常,应该可以打开浏览器访问 http://192.168.20.70 的管理页面,默认的管理员用户名和密码是 admin/Harbor12345
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

//所有node节点配置连接私有仓库(注意后面的逗号要添加,不然服务起不起来)

[root@node1 ~]# vim /etc/docker/daemon.json 
{
  "registry-mirrors": ["https://yzku4lgz.mirror.aliyuncs.com"],
  "insecure-registries":["192.168.20.70"]
}

//登录harbor私有仓库

[root@node1 ~]# systemctl restart docker 
[root@node1 ~]# docker login 192.168.20.70
Username: admin
Password:    //输入密码Harbor12345
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

//下载Tomcat镜像进行推送

[root@node1 ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
57df1a1f1ad8: Pull complete 
71e126169501: Pull complete 
1af28a55c3f3: Pull complete 
03f1c9932170: Pull complete 
881ad7aafb13: Pull complete 
9c0ffd4062f3: Pull complete 
bd62e479351a: Pull complete 
48ee8bc64dbc: Pull complete 
07cb85cca4f0: Pull complete 
6a78fac8d191: Pull complete 
Digest: sha256:1bab37d5d97bd8c74a474b2c1a62bbf1f1b4b62f151c8dcc472c7d577eb3479d
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest

在这里插入图片描述

//推送格式

 docker tag SOURCE_IMAGE[:TAG] 192.168.195.80/project/IMAGE[:TAG]

//打标签

[root@node1 ~]# docker tag tomcat 192.168.20.70/project/tomcat

//推送成功

[root@node1 ~]# docker push 192.168.20.70/project/tomcat
The push refers to repository [192.168.20.70/project/tomcat]
b654a29de9ee: Pushed 
1485ce09f585: Pushed 
eb6e8fe5c6dc: Pushed 
8b185d674aef: Pushed 
4f17d163126f: Pushed 
df95ed2a791d: Pushed 
17bdf5e22660: Pushed 
d37096232ed8: Pushed 
6add0d2b5482: Pushed 
4ef54afed780: Pushed 
latest: digest: sha256:99c20ba4ab117d182a0aa2266123b2cfb425777495fd62e2ba37f489c3e2f808 size: 2421

在这里插入图片描述

//进行镜像下载问题就会出现,需要登录才能下载
//问题点:缺少仓库的凭据

[root@node2 ~]# docker pull 192.168.20.70/project/tomcat
Using default tag: latest
Error response from daemon: pull access denied for 192.168.195.80/project/tomcat, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

//node节点下载tomcat镜像

docker pull tomcat:8.0.52
[root@master demo]# vim tomcat-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-tomcat
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: my-tomcat
    spec:
      containers:
      - name: my-tomcat
        image: docker.io/tomcat:8.0.52
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-tomcat
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 31111
  selector:
    app: my-tomcat

[root@master demo]# kubectl create -f tomcat-deployment.yaml 
deployment.extensions/my-tomcat created
service/my-tomcat created

[root@master demo]# kubectl get pods,deploy,svc
NAME                                  READY   STATUS    RESTARTS   AGE
pod/my-tomcat-57667b9d9-7z584         1/1     Running   0          41s
pod/my-tomcat-57667b9d9-bzhzz         1/1     Running   0          41s
pod/mypod                             1/1     Running   2          112m
pod/nginx-7697996758-24gnd            1/1     Running   2          23h
pod/nginx-7697996758-69hsc            1/1     Running   2          23h
pod/nginx-7697996758-lf7k6            1/1     Running   2          23h
pod/nginx-deployment-d55b94fd-gzsvv   1/1     Running   2          23h
pod/nginx-deployment-d55b94fd-rhp67   1/1     Running   2          23h
pod/nginx-deployment-d55b94fd-tkdjs   1/1     Running   2          23h

NAME                                     DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
deployment.extensions/my-tomcat          2         2         2            2           41s
deployment.extensions/nginx              3         3         3            3           23h
deployment.extensions/nginx-deployment   3         3         3            3           23h

NAME                    TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
service/kubernetes      ClusterIP   10.0.0.1     <none>        443/TCP          3d21h
service/my-tomcat       NodePort    10.0.0.27    <none>        8080:31111/TCP   41s
service/nginx-service   NodePort    10.0.0.217   <none>        80:32302/TCP     23h

//问题处理
//如果遇到处于Terminating状态的无法删除的资源如何处理

[root@master demo]# kubectl get pods
NAME                              READY   STATUS        RESTARTS   AGE
my-tomcat-57667b9d9-nklvj         1/1     Terminating   0          10h
my-tomcat-57667b9d9-wllnp         1/1     Terminating   0          10h

//这种情况下可以使用强制删除命令:

kubectl delete pod [pod name] --force --grace-period=0 -n [namespace]

[root@master demo]# kubectl delete pod my-tomcat-57667b9d9-nklvj --force --grace-period=0 -n default
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "my-tomcat-57667b9d9-nklvj" force deleted

[root@master demo]# kubectl delete pod my-tomcat-57667b9d9-wllnp --force --grace-period=0 -n default
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
pod "my-tomcat-57667b9d9-wllnp" force deleted

[root@master demo]# kubectl get pods
NAME                                  READY   STATUS    RESTARTS   AGE
pod/mypod                             1/1     Running   2          112m
pod/nginx-7697996758-24gnd            1/1     Running   2          23h
pod/nginx-7697996758-69hsc            1/1     Running   2          23h
pod/nginx-7697996758-lf7k6            1/1     Running   2          23h
pod/nginx-deployment-d55b94fd-gzsvv   1/1     Running   2          23h
pod/nginx-deployment-d55b94fd-rhp67   1/1     Running   2          23h
pod/nginx-deployment-d55b94fd-tkdjs   1/1     Running   2          23h

//node01上操作(之前登陆过harbor仓库的节点)
//镜像打标签

[root@node1 ~]# docker tag tomcat:8.0.52 192.168.195.80/project/tomcat

//上传镜像到harbor

[root@node1 ~]# docker tag tomcat:8.0.52 192.168.20.70/project/tomcat
[root@node1 ~]# docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
nginx                                                             latest              992e3b7be046        6 days ago          133MB
tomcat                                                            latest              f796d3d2c195        3 weeks ago         647MB
192.168.20.70/project/tomcat                                      <none>              f796d3d2c195        3 weeks ago         647MB
centos                                                            7                   7e6257c9f8d8        2 months ago        203MB
nginx                                                             1.14                295c7be07902        18 months ago       109MB
nginx                                                             1.15.4              bc26f1ed35cf        2 years ago         109MB
192.168.20.70/project/tomcat                                      latest              b4b762737ed4        2 years ago         356MB
tomcat                                                            8.0.52              b4b762737ed4        2 years ago         356MB
siriuszg/kubernetes-dashboard-amd64                               v1.8.3              784cf2722f44        2 years ago         102MB
registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64   3.0                 99e59f495ffa        4 years ago         747kB

//查看登陆凭据

[root@node1 ~]# ls -a
.                .bash_profile  .dbus                               .ICEauthority         .pki       .viminfo     图片
..               .bashrc        .docker                             initial-setup-ks.cfg  proxy.sh   .Xauthority  文档
anaconda-ks.cfg  .cache         .esd_auth                           kubelet.sh            README.md  公共         下载
.bash_history    .config        flannel.sh                          .local                .ssh       模板         音乐
.bash_logout     .cshrc         flannel-v0.10.0-linux-amd64.tar.gz  node.zip              .tcshrc    视频         桌面

//.docker/config.json 凭证,登陆后出现

[root@node1 ~]# cat .docker/config.json |base64 -w 0  //-w, --wrap=字符数	在指定的字符数后自动换行(默认为76),0 为禁用自动换行
ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjIwLjcwIjogewoJCQkiYXV0aCI6ICJZV1J0YVc0NlNHRnlZbTl5TVRJek5EVT0iCgkJfQoJfSwKCSJIdHRwSGVhZGVycyI6IHsKCQkiVXNlci1BZ2VudCI6ICJEb2NrZXItQ2xpZW50LzE5LjAzLjEzIChsaW51eCkiCgl9Cn0=
[root@master demo]# vim registry-pull-secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: registry-pull-secret
data:
  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjIwLjcwIjogewoJCQkiYXV0aCI6ICJZV1J0YVc0NlNHRnlZbTl5TVRJek5EVT0iCgkJfQoJfSwKCSJIdHRwSGVhZGVycyI6IHsKCQkiVXNlci1BZ2VudCI6ICJEb2NrZXItQ2xpZW50LzE5LjAzLjEzIChsaW51eCkiCgl9Cn0=
type: kubernetes.io/dockerconfigjson

//创建secret资源

[root@master demo]# kubectl create -f registry-pull-secret.yaml
secret/registry-pull-secret created

//查看secret资源

[root@master demo]# kubectl get secret
NAME                   TYPE                                  DATA   AGE
default-token-kfkw4    kubernetes.io/service-account-token   3      3d21h
registry-pull-secret   kubernetes.io/dockerconfigjson        1      44s

//删除原来的

[root@master demo]# kubectl delete -f tomcat-deployment.yaml
deployment.extensions "my-tomcat" deleted
service "my-tomcat" deleted

//创建资源从harbor中下载镜像

[root@master demo]# vim tomcat-deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-tomcat
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: my-tomcat
    spec:
      imagePullSecrets:
      - name: registry-pull-secret
      containers:
      - name: my-tomcat
        image: 192.168.20.70/project/tomcat
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: my-tomcat
spec:
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 31111
  selector:
    app: my-tomcat

[root@master demo]# kubectl create -f tomcat-deployment.yaml 
deployment.extensions/my-tomcat created
service/my-tomcat created

//私有仓库中的镜像被下载了2次

[root@master demo]# kubectl get pods -o wide
NAME                              READY   STATUS    RESTARTS   AGE     IP            NODE            NOMINATED NODE
my-tomcat-86cb68c9c4-lx7lm        1/1     Running   0          5m53s   172.17.87.6   192.168.20.20   <none>
my-tomcat-86cb68c9c4-wpq6z        1/1     Running   0          5m53s   172.17.93.6   192.168.20.30   <none>

//查看详细信息

[root@master demo]# kubectl describe deployment/my-tomcat
Name:                   my-tomcat
Namespace:              default
CreationTimestamp:      Mon, 12 Oct 2020 19:16:52 +0800
Labels:                 app=my-tomcat
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               app=my-tomcat
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  1 max unavailable, 1 max surge
Pod Template:
  Labels:  app=my-tomcat
  Containers:
   my-tomcat:
    Image:        192.168.20.70/project/tomcat  
    Port:         80/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
OldReplicaSets:  <none>
NewReplicaSet:   my-tomcat-86cb68c9c4 (2/2 replicas created)
Events:
  Type    Reason             Age    From                   Message
  ----    ------             ----   ----                   -------
  Normal  ScalingReplicaSet  9m17s  deployment-controller  Scaled up replica set my-tomcat-86cb68c9c4 to 2

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值