1、为什么K8s要引入deployment资源。

答:deployment也是保证pod高可用的一种方式,明明已经有RC(Replication Controller),为什么还要引入deployment呢?是因为deployment解决了RC(Replication Controller)的一个痛点。是因为RC在进行版本升级的时候,会造成一个问题,就是它的svc(Service)短时间内访问不了了,deployment就是解决这个问题的。

2、创建一个deployment的配置文件。

1 # 声明api的版本。2 apiVersion: extensions/v1beta13 # kind代表资源的类型,资源是Deployment。4 kind: Deployment5 # 资源叫什么名字,是在其属性metadata里面的。6 metadata:7   # 第一个属性name的值是myweb,即Service的名字就叫做myweb。8   name: nginx-deployment9 # spec是详细,详细里面定义了一个容器。
10 spec:
11   # 副本的数量,比RC少了一个selector。
12   replicas: 3
13   # 模板,都是使用模板来启动Pod的。
14   template:
15     # 资源叫什么名字,是在其属性metadata里面的。
16     metadata:
17       # 给Pod贴上了一个标签,标签是app: nginx,标签是有一定的作用的。
18       labels:
19         app: nginx
20     # spec是详细,详细里面定义了一个容器。
21     spec:
22       # 定义一个容器,可以声明多个容器的。
23       containers:
24         # 容器的名称叫做nginx
25         - name: nginx
26         # 使用了什么镜像,可以使用官方公有的,也可以使用私有的。
27           image: 192.168.110.133/nginx:1.13
28         # ports定义容器的端口
29           ports:
30             #  容器的端口是80,如果容器有多个端口,可以在后面接着写一行即可。
31             - containerPort: 80

具体操作,如下所示:

1 [root@k8s-master ~]# cd k8s/2 [root@k8s-master k8s]# ls3 pod  rc  svc4 [root@k8s-master k8s]# mkdir deploy5 [root@k8s-master k8s]# cd deploy/6 [root@k8s-master deploy]# ls7 [root@k8s-master deploy]# kubectl get rc 8 NAME      DESIRED   CURRENT   READY     AGE9 myweb     3         3         3         4d
10 [root@k8s-master deploy]# kubectl delete rc myweb 
11 replicationcontroller "myweb" deleted
12 [root@k8s-master deploy]# kubectl get rc 
13 No resources found.
14 [root@k8s-master deploy]# kubectl get svc 
15 NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
16 kubernetes   10.254.0.1       <none>        443/TCP        12d
17 myweb        10.254.210.104   <nodes>       80:30000/TCP   2d
18 [root@k8s-master deploy]# kubectl delete svc myweb 
19 service "myweb" deleted
20 [root@k8s-master deploy]# kubectl get svc 
21 NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
22 kubernetes   10.254.0.1   <none>        443/TCP   12d
23 [root@k8s-master deploy]# vim nginx-deploy.yaml
24 [root@k8s-master deploy]# 

然后开始创建deployment,如下所示:

1 [root@k8s-master deploy]# kubectl create -f nginx-deploy.yaml 
2 deployment "nginx-deployment" created

然后创建deployment资源完毕之后,可以查看创建的资源,如下所示:

1 [root@k8s-master deploy]# kubectl get all -o wide2 NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE3 deploy/nginx-deployment   3         3         3            0           2m4 5 NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE       SELECTOR6 svc/kubernetes   10.254.0.1   <none>        443/TCP   12d       <none>7 8 NAME                             DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                     SELECTOR9 rs/nginx-deployment-3699032092   3         3         0         2m        nginx          192.168.110.133/nginx:1.13   app=nginx,pod-template-hash=3699032092
10 
11 NAME                                   READY     STATUS             RESTARTS   AGE       IP            NODE
12 po/nginx-deployment-3699032092-3jnk6   0/1       ImagePullBackOff   0          2m        172.16.85.2   k8s-master
13 po/nginx-deployment-3699032092-97bfm   0/1       ImagePullBackOff   0          2m        172.16.38.2   k8s-node3
14 po/nginx-deployment-3699032092-fmqkx   0/1       ImagePullBackOff   0          2m        172.16.5.2    k8s-node2
15 [root@k8s-master deploy]# 

我这里明显没有启动起来,说镜像拉取错误,仔细检查是nginx-deploy.yaml配置文件,在配置image的地方写错了,漏写了端口号导致的。

再使用命令创建一遍,就发现创建好了。deployment并不像RC直接去启动Pod,它们之间的区别是deployment会启动一个RS,RS拥有RC的百分之九十的功能,比RC的功能还多一些,由RC再去启动三个POD。

1 [root@k8s-master deploy]# kubectl get deployment 2 NAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE3 nginx-deployment   3         3         3            0           5m4 [root@k8s-master deploy]# kubectl delete deployment nginx-deployment5 deployment "nginx-deployment" deleted6 [root@k8s-master deploy]# kubectl get deployment 7 No resources found.8 [root@k8s-master deploy]# kubectl get all -o wide9 NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE       SELECTOR
10 svc/kubernetes   10.254.0.1   <none>        443/TCP   12d       <none>
11 [root@k8s-master deploy]# kubectl create -f nginx-deploy.yaml 
12 deployment "nginx-deployment" created
13 [root@k8s-master deploy]# kubectl get all -o wide
14 NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
15 deploy/nginx-deployment   3         3         3            3           7s
16 
17 NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE       SELECTOR
18 svc/kubernetes   10.254.0.1   <none>        443/TCP   12d       <none>
19 
20 NAME                             DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                          SELECTOR
21 rs/nginx-deployment-3018768667   3         3         3         7s        nginx          192.168.110.133:5000/nginx:1.13   app=nginx,pod-template-hash=3018768667
22 
23 NAME                                   READY     STATUS    RESTARTS   AGE       IP            NODE
24 po/nginx-deployment-3018768667-1c6lm   1/1       Running   0          7s        172.16.38.2   k8s-node3
25 po/nginx-deployment-3018768667-cvvjc   1/1       Running   0          7s        172.16.85.2   k8s-master
26 po/nginx-deployment-3018768667-grvlh   1/1       Running   0          7s        172.16.5.2    k8s-node2
27 [root@k8s-master deploy]# 

此时,已经有了一个deployment,那么如何让Pod里面的服务让外界访问呢,我们也是需要创建一个service的,除了使用配置文件进行创建,还可以通过命令进行关联。

1 [root@k8s-master ~]# kubectl expose deployment nginx-deployment --port=80 --type=NodePort2 service "nginx-deployment" exposed3 [root@k8s-master ~]# kubectl get all -o wide4 NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE5 deploy/nginx-deployment   3         3         3            3           1h6 7 NAME                   CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR8 svc/kubernetes         10.254.0.1      <none>        443/TCP        12d       <none>9 svc/nginx-deployment   10.254.95.103   <nodes>       80:36848/TCP   23s       app=nginx
10 
11 NAME                             DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                          SELECTOR
12 rs/nginx-deployment-3018768667   3         3         3         1h        nginx          192.168.110.133:5000/nginx:1.13   app=nginx,pod-template-hash=3018768667
13 
14 NAME                                   READY     STATUS    RESTARTS   AGE       IP            NODE
15 po/nginx-deployment-3018768667-1c6lm   1/1       Running   0          1h        172.16.38.2   k8s-node3
16 po/nginx-deployment-3018768667-cvvjc   1/1       Running   0          1h        172.16.85.2   k8s-master
17 po/nginx-deployment-3018768667-grvlh   1/1       Running   0          1h        172.16.5.2    k8s-node2
18 [root@k8s-master ~]# curl -I 192.168.110.133:36848
19 HTTP/1.1 200 OK
20 Server: nginx/1.13.12
21 Date: Wed, 17 Jun 2020 03:05:29 GMT
22 Content-Type: text/html
23 Content-Length: 612
24 Last-Modified: Mon, 09 Apr 2018 16:01:09 GMT
25 Connection: keep-alive
26 ETag: "5acb8e45-264"
27 Accept-Ranges: bytes
28 
29 [root@k8s-master ~]# 

下面可以对nginx进行版本升级,不用创建配置文件,这里可以直接修改配置文件即可。

1 [root@k8s-master ~]# kubectl edit deployment nginx-deployment

具体修改内容,如下所示:

修改,保存之后再使用curl命令进行查看,发现版本已经进行了升级了的。

1 [root@k8s-master ~]# curl -I 192.168.110.133:368482 HTTP/1.1 200 OK3 Server: nginx/1.15.124 Date: Wed, 17 Jun 2020 03:09:26 GMT5 Content-Type: text/html6 Content-Length: 6127 Last-Modified: Tue, 16 Apr 2019 13:08:19 GMT8 Connection: keep-alive9 ETag: "5cb5d3c3-264"
10 Accept-Ranges: bytes
11 
12 [root@k8s-master ~]# 

可以通过命令查看升级之后三个Pod节点的情况,这里可以看到多了一个rs/nginx-deployment-3181297949,之前的那个rs/nginx-deployment-3018768667都被设置为了0。

注意:这里我也出现了升级之后无法将Node2节点的Pod启动成功的情况,我重启了三台机器,三个节点的Pod都有了,这里可能是因为从私有仓库下载的地方没有配置好,重启之前Node2节点使用docker images命令是无法查看到私有仓库的nginx:1.15版本的,重启之后才可以看到。

1 [root@k8s-master ~]# kubectl get all -o wide2 NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE3 deploy/nginx-deployment   3         3         3            3           1h4 5 NAME                   CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR6 svc/kubernetes         10.254.0.1      <none>        443/TCP        12d       <none>7 svc/nginx-deployment   10.254.95.103   <nodes>       80:36848/TCP   14m       app=nginx8 9 NAME                             DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                          SELECTOR
10 rs/nginx-deployment-3018768667   0         0         0         1h        nginx          192.168.110.133:5000/nginx:1.13   app=nginx,pod-template-hash=3018768667
11 rs/nginx-deployment-3181297949   3         3         3         10m       nginx          192.168.110.133:5000/nginx:1.15   app=nginx,pod-template-hash=3181297949
12 
13 NAME                                   READY     STATUS    RESTARTS   AGE       IP            NODE
14 po/nginx-deployment-3181297949-9d3t0   1/1       Running   1          10m       172.16.59.2   k8s-node2
15 po/nginx-deployment-3181297949-mjtk3   1/1       Running   1          10m       172.16.16.2   k8s-master
16 po/nginx-deployment-3181297949-vp84j   1/1       Running   1          10m       172.16.32.2   k8s-node3
17 [root@k8s-master ~]# 

deployment的回滚操作,如下所示:

[root@k8s-master ~]# kubectl rollout undo deployment nginx-deployment

1 [root@k8s-master ~]# curl -I 192.168.110.133:368482 HTTP/1.1 200 OK3 Server: nginx/1.15.124 Date: Wed, 17 Jun 2020 03:23:53 GMT5 Content-Type: text/html6 Content-Length: 6127 Last-Modified: Tue, 16 Apr 2019 13:08:19 GMT8 Connection: keep-alive9 ETag: "5cb5d3c3-264"
10 Accept-Ranges: bytes
11 
12 [root@k8s-master ~]# kubectl roll
13 rolling-update  rollout         
14 [root@k8s-master ~]# kubectl rollout undo deployment nginx-deployment
15 deployment "nginx-deployment" rolled back
16 [root@k8s-master ~]# curl -I 192.168.110.133:36848
17 HTTP/1.1 200 OK
18 Server: nginx/1.13.12
19 Date: Wed, 17 Jun 2020 03:25:22 GMT
20 Content-Type: text/html
21 Content-Length: 612
22 Last-Modified: Mon, 09 Apr 2018 16:01:09 GMT
23 Connection: keep-alive
24 ETag: "5acb8e45-264"
25 Accept-Ranges: bytes
26 
27 [root@k8s-master ~]# 

可以查看deployment存在那些历史版本,如下所示:

1 [root@k8s-master ~]# kubectl rollout history deployment nginx-deployment 
2 deployments "nginx-deployment"
3 REVISION    CHANGE-CAUSE
4 2        <none>
5 3        <none>
6 
7 [root@k8s-master ~]# 

如果想要查看到历史版本中的改变记录、镜像版本,需要使用新的方式进行发布。

1 版本发布
2 kubectl run nginx --image=192.168.110.133:5000/nginx:1.13 --replicas=3
3 
4 版本升级
5 kubectl set image deploy nginx nginx=192.168.110.133:5000/nginx:1.15
6 
7 历史版本查询
8 [root@k8s-master ~]# kubectl rollout history deployment nginx

具体操作,如下所示:

1 [root@k8s-master ~]# kubectl run nginx --image=192.168.110.133:5000/nginx:1.13 --replicas=3 --record 2 deployment "nginx" created3 [root@k8s-master ~]# kubectl rollout history deployment nginx-deployment 4 deployments "nginx-deployment"5 REVISION    CHANGE-CAUSE6 2        <none>7 3        <none>8 9 [root@k8s-master ~]# kubectl rollout history deployment nginx
10 deployments "nginx"
11 REVISION    CHANGE-CAUSE
12 1        kubectl run nginx --image=192.168.110.133:5000/nginx:1.13 --replicas=3 --record
13 
14 [root@k8s-master ~]# kubectl set image deploy nginx nginx=192.168.110.133:5000/nginx:1.15
15 deployment "nginx" image updated
16 [root@k8s-master ~]# kubectl rollout history deployment nginx
17 deployments "nginx"
18 REVISION    CHANGE-CAUSE
19 1        kubectl run nginx --image=192.168.110.133:5000/nginx:1.13 --replicas=3 --record
20 2        kubectl set image deploy nginx nginx=192.168.110.133:5000/nginx:1.15
21 
22 [root@k8s-master ~]# kubectl get all -o wide
23 NAME                      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
24 deploy/nginx              3         3         3            3           1m
25 deploy/nginx-deployment   3         3         3            3           1h
26 
27 NAME                   CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE       SELECTOR
28 svc/kubernetes         10.254.0.1      <none>        443/TCP        12d       <none>
29 svc/nginx-deployment   10.254.95.103   <nodes>       80:36848/TCP   32m       app=nginx
30 
31 NAME                             DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                          SELECTOR
32 rs/nginx-3525615529              0         0         0         1m        nginx          192.168.110.133:5000/nginx:1.13   pod-template-hash=3525615529,run=nginx
33 rs/nginx-3675430827              3         3         3         23s       nginx          192.168.110.133:5000/nginx:1.15   pod-template-hash=3675430827,run=nginx
34 rs/nginx-deployment-3018768667   3         3         3         1h        nginx          192.168.110.133:5000/nginx:1.13   app=nginx,pod-template-hash=3018768667
35 rs/nginx-deployment-3181297949   0         0         0         27m       nginx          192.168.110.133:5000/nginx:1.15   app=nginx,pod-template-hash=3181297949
36 
37 NAME                                   READY     STATUS    RESTARTS   AGE       IP            NODE
38 po/nginx-3675430827-3gdxl              1/1       Running   0          23s       172.16.59.4   k8s-node2
39 po/nginx-3675430827-8t88l              1/1       Running   0          22s       172.16.16.2   k8s-master
40 po/nginx-3675430827-tbvf9              1/1       Running   0          23s       172.16.32.4   k8s-node3
41 po/nginx-deployment-3018768667-56jw4   1/1       Running   0          11m       172.16.59.3   k8s-node2
42 po/nginx-deployment-3018768667-gl0s6   1/1       Running   0          11m       172.16.16.3   k8s-master
43 po/nginx-deployment-3018768667-vbhp1   1/1       Running   0          11m       172.16.32.3   k8s-node3
44 [root@k8s-master ~]# 

回滚到指定的版本,undo是回滚到上一个版本,操作,如下所示:

1 [root@k8s-master ~]# kubectl rollout history deployment nginx2 deployments "nginx"3 REVISION    CHANGE-CAUSE4 1        kubectl run nginx --image=192.168.110.133:5000/nginx:1.13 --replicas=3 --record5 2        kubectl set image deploy nginx nginx=192.168.110.133:5000/nginx:1.156 7 [root@k8s-master ~]# kubectl rollout undo deployment nginx --to-revision=18 deployment "nginx" rolled back9 [root@k8s-master ~]# kubectl rollout history deployment nginx
10 deployments "nginx"
11 REVISION    CHANGE-CAUSE
12 2        kubectl set image deploy nginx nginx=192.168.110.133:5000/nginx:1.15
13 3        kubectl run nginx --image=192.168.110.133:5000/nginx:1.13 --replicas=3 --record
14 
15 [root@k8s-master ~]# 

总结:deployment比RC更好使哦,deployment不依赖于配置文件,会成为主流的哦,重点使用。

 

3、k8s中不同类型的pod之间如何相互访问?例如,web服务如何访问db服务呢?

答:在k8s里面,服务与服务之间需要相互访问的时候,需要借助于VIP,因为每个Pod的ip地址是不固定的。可以固定的是VIP(可以理解为是VIP的地址ClusterIp),在k8s中,Pod与Pod之间相互访问就是通过VIP来进行访问的。比如,web服务想要访问db服务,web服务就要知道db服务的VIP(可以理解为是VIP的地址ClusterIp),不然无法进行访问。

1 [root@k8s-master ~]# cd k8s/2 [root@k8s-master k8s]# ls3 deploy  pod  rc  svc4 [root@k8s-master k8s]# clear5 [root@k8s-master k8s]# wget https://www.qstack.com.cn/tomcat_demo.zip6 --2020-06-17 11:49:34--  https://www.qstack.com.cn/tomcat_demo.zip7 Resolving www.qstack.com.cn (www.qstack.com.cn)... 123.125.46.149, 111.202.85.378 Connecting to www.qstack.com.cn (www.qstack.com.cn)|123.125.46.149|:443... connected.9 HTTP request sent, awaiting response... 200 OK
10 Length: 1486 (1.5K) [application/zip]
11 Saving to: ‘tomcat_demo.zip’
12 
13 100%[======================================================================================>] 1,486       --.-K/s   in 0.01s   
14 
15 2020-06-17 11:49:34 (106 KB/s) - ‘tomcat_demo.zip’ saved [1486/1486]
16 
17 [root@k8s-master k8s]# ls
18 deploy  pod  rc  svc  tomcat_demo.zip
19 [root@k8s-master k8s]# unzip tomcat_demo.zip 
20 Archive:  tomcat_demo.zip
21    creating: tomcat_demo/
22   inflating: tomcat_demo/mysql-rc.yml  
23   inflating: tomcat_demo/mysql-svc.yml  
24   inflating: tomcat_demo/tomcat-rc.yml  
25   inflating: tomcat_demo/tomcat-svc.yml  
26 [root@k8s-master k8s]# cd tomcat_demo/
27 [root@k8s-master tomcat_demo]# ls
28 mysql-rc.yml  mysql-svc.yml  tomcat-rc.yml  tomcat-svc.yml
29 [root@k8s-master tomcat_demo]# 

mysql-rc.yml 这个RC保证mysql的Pod高可用。mysql-svc.yml 这个SVC保证tomcat被访问。tomcat-rc.yml 这个RC保证tomcat是高可用的。tomcat-svc.yml 这个svc保证tomcat被外界所访问。

如果是自己向服务器传包,那么可以直接使用docker的命令进行操作即可。如果想从docker的仓库里面下载,需要修改一下这个配置,不然下载不动。

[root@k8s-master ~]# vim /etc/docker/daemon.json

1 {
2   "insecure-registries": ["192.168.110.133:5000"],
3   "registry-mirrors" : ["https://registry.docker-cn.com"]
4 }

使用国内的docker的镜像加速,可以不用配置自己的私有仓库的哈。

1 [root@k8s-master rc]# docker tag docker.io/mysql:5.7.30 192.168.110.133:5000/mysql:5.7.302 [root@k8s-master rc]# docker push 192.168.110.133:5000/mysql:5.7.303 [root@k8s-master ~]# docker images 4 REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE5 192.168.110.133:5000/mysql                            5.7.30              9cfcce23593a        8 days ago          448 MB6 docker.io/mysql                                       5.7.30              9cfcce23593a        8 days ago          448 MB7 docker.io/busybox                                     latest              1c35c4412082        2 weeks ago         1.22 MB8 docker.io/registry                                    latest              708bc6af7e5e        4 months ago        25.8 MB9 docker.io/nginx                                       1.15                53f3fd8007f7        13 months ago       109 MB
10 192.168.110.133:5000/nginx                            1.15                53f3fd8007f7        13 months ago       109 MB
11 192.168.110.133:5000/nginx                            1.13                ae513a47849c        2 years ago         109 MB
12 docker.io/nginx                                       1.13                ae513a47849c        2 years ago         109 MB
13 registry.access.redhat.com/rhel7/pod-infrastructure   latest              99965fb98423        2 years ago         209 MB
14 192.168.110.133:5000/pod-infrastructure               latest              34d3450d733b        3 years ago         205 MB
15 [root@k8s-master ~]# 

创建mysql的RC(Replication Controller)副本控制器。

[root@k8s-master tomcat_demo]# vim mysql-rc.yml

1 apiVersion: v12 kind: ReplicationController3 metadata:4   name: mysql5 spec:6   replicas: 17   selector:8     app: mysql9   template:
10     metadata:
11       labels:
12         app: mysql
13     spec:
14       containers:
15         - name: mysql
16           image: 192.168.110.133:5000/mysql:5.7.30
17           ports:
18           - containerPort: 3306
19           env:
20           - name: MYSQL_ROOT_PASSWORD   # 数据库的环境变量,设置数据库的密码为123456
21             value: '123456'

操作,如下所示:

执行创建命令,创建 mysql的RC(Replication Controller)副本控制器。

[root@k8s-master tomcat_demo]# kubectl create -f mysql-rc.yml

 

4、插播一个问题,具体就是我三台centos7机器,docker的版本是1.13.1,然后搭了私有仓库,但是呢,每次下载都不好使,除了第一次搭建好,后来都是讲机器挂起了,直接使用的,前几篇都遇到这个问题了,原因是私有仓库的docker进程都没有了。

1 [root@k8s-master tomcat_demo]# kubectl describe pod mysql-xcth2 2 Name:        mysql-xcth23 Namespace:    default4 Node:        k8s-node3/192.168.110.1355 Start Time:    Wed, 17 Jun 2020 21:25:04 +08006 Labels:        app=mysql7 Status:        Pending8 IP:        172.16.32.29 Controllers:    ReplicationController/mysql
10 Containers:
11   mysql:
12     Container ID:    
13     Image:        192.168.110.133:5000/mysql:5.7.30
14     Image ID:        
15     Port:        3306/TCP
16     State:        Waiting
17       Reason:        ErrImagePull
18     Ready:        False
19     Restart Count:    0
20     Volume Mounts:    <none>
21     Environment Variables:
22       MYSQL_ROOT_PASSWORD:    123456
23 Conditions:
24   Type        Status
25   Initialized     True 
26   Ready     False 
27   PodScheduled     True 
28 No volumes.
29 QoS Class:    BestEffort
30 Tolerations:    <none>
31 Events:
32   FirstSeen    LastSeen    Count    From            SubObjectPath        Type        Reason            Message
33   ---------    --------    -----    ----            -------------        --------    ------            -------
34   34s        34s        1    {kubelet k8s-node3}                Warning        MissingClusterDNS    kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
35   33s        33s        1    {default-scheduler }                Normal        Scheduled        Successfully assigned mysql-xcth2 to k8s-node3
36   33s        19s        2    {kubelet k8s-node3}    spec.containers{mysql}    Normal        Pulling            pulling image "192.168.110.133:5000/mysql:5.7.30"
37   33s        19s        2    {kubelet k8s-node3}    spec.containers{mysql}    Warning        Failed            Failed to pull image "192.168.110.133:5000/mysql:5.7.30": Error while pulling image: Get http://192.168.110.133:5000/v1/repositories/mysql/images: dial tcp 192.168.110.133:5000: connect: connection refused
38   33s        19s        2    {kubelet k8s-node3}                Warning        FailedSync        Error syncing pod, skipping: failed to "StartContainer" for "mysql" with ErrImagePull: "Error while pulling image: Get http://192.168.110.133:5000/v1/repositories/mysql/images: dial tcp 192.168.110.133:5000: connect: connection refused"
39 
40   32s    6s    2    {kubelet k8s-node3}    spec.containers{mysql}    Normal    BackOff        Back-off pulling image "192.168.110.133:5000/mysql:5.7.30"
41   32s    6s    2    {kubelet k8s-node3}                Warning    FailedSync    Error syncing pod, skipping: failed to "StartContainer" for "mysql" with ImagePullBackOff: "Back-off pulling image \"192.168.110.133:5000/mysql:5.7.30\""

可以使用docker ps查看是否还运行着私有仓库registry。

注意:报错的原因,如下所示:

1 /usr/bin/docker-current: Error response from daemon: Conflict. The container name "/registry" is already in use by container a27987d97039c8596ad2a2150cee9e3fbe7580c8131e9f258aea8a922c22a237. You have to remove (or rename) that container to be able to reuse that name..

大致的意思是:来自守护进程的错误响应:冲突。容器名称“/runoob-nginx-test”为已在容器“a27987d97039c8596ad2a2150cee9e3fbe7580c8131e9f258aea8a922c22a237”中使用。您必须删除(或重命名)该容器才能重用该名称。

1 [root@k8s-master ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry2 /usr/bin/docker-current: Error response from daemon: Conflict. The container name "/registry" is already in use by container a27987d97039c8596ad2a2150cee9e3fbe7580c8131e9f258aea8a922c22a237. You have to remove (or rename) that container to be able to reuse that name..3 See '/usr/bin/docker-current run --help'.4 [root@k8s-master ~]#  docker ps -l 5 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS               NAMES6 a27987d97039        registry            "/entrypoint.sh /e..."   11 days ago         Exited (2) 9 days ago                       registry7 [root@k8s-master ~]# docker rm a27987d970398 a27987d970399 [root@k8s-master ~]#  docker ps -l 
10 CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
11 ee95778bd5d9        busybox             "sh"                12 days ago         Exited (127) 12 days ago                       friendly_payne
12 [root@k8s-master ~]# docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
13 5e72b0961647003c757fd41ffe824027c857d1f3938b9a53535645f4f372a40a
14 [root@k8s-master ~]# docker ps 
15 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
16 5e72b0961647        registry            "/entrypoint.sh /e..."   4 seconds ago       Up 3 seconds        0.0.0.0:5000->5000/tcp   registry
17 [root@k8s-master ~]# 

解决的方法:使用docker ps 时查看发现没有运行,使用 docker ps -l , 可以看到有一个nginx容器 ( -l 是显示最新创建的容器包括所有状态) 。删除容器重名的容器再次运行就行。使用docker ps只能查看正在运行的容器,因为nginx这个容器已经给被停止了所以看不到。

然后将你的镜像上传到私有仓库里面,如下所示:

1 [root@k8s-master tomcat_demo]# docker tag docker.io/mysql:5.7.30 192.168.110.133:5000/mysql:5.7.30 2 [root@k8s-master tomcat_demo]# docker push 192.168.110.133:5000/mysql:5.7.30 3 The push refers to a repository [192.168.110.133:5000/mysql]4 c90a34afcab0: Pushed 5 ac7657905788: Pushed 6 8f0182ef7c8c: Pushed 7 91ae264962fb: Pushed 8 3a2464d8e0c0: Pushed 9 44853bb67274: Pushed 
10 61cbb8ea6481: Pushed 
11 66c45123fd43: Pushed 
12 c3f46b20a0d3: Pushed 
13 365386a39e0e: Pushed 
14 13cb14c2acd3: Pushed 
15 5.7.30: digest: sha256:0563b36ec2d1a262f79e1d8562e61f642a0f64f93306d8a709047cdea0444d0a size: 2621
16 [root@k8s-master tomcat_demo]# 

然后可以创建mysql的RC,此时就可以顺利创建成功了。

1 [root@k8s-master tomcat_demo]# kubectl create -f mysql-rc.yml 2 replicationcontroller "mysql" created3 [root@k8s-master tomcat_demo]# kubectl get rc 4 NAME      DESIRED   CURRENT   READY     AGE5 mysql     1         1         1         5s6 [root@k8s-master tomcat_demo]# kubectl get all -o wide7 NAME       DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                            SELECTOR8 rc/mysql   1         1         1         11s       mysql          192.168.110.133:5000/mysql:5.7.30   app=mysql9 
10 NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE       SELECTOR
11 svc/kubernetes   10.254.0.1   <none>        443/TCP   13d       <none>
12 
13 NAME             READY     STATUS        RESTARTS   AGE       IP            NODE
14 po/mysql-537xf   1/1       Running       0          11s       172.16.16.3   k8s-master
15 po/mysql-gnws2   1/1       Terminating   0          3m        172.16.32.3   k8s-node3
16 [root@k8s-master tomcat_demo]# 

由于前几篇的文章,没有发现注册中心已经挂了,所以这里再贴一下我的docker加速和私有仓库的配置。

1 [root@k8s-master tomcat_demo]# cat /etc/docker/daemon.json2 {3   "insecure-registries": ["192.168.110.133:5000"],4   "registry-mirrors" : ["https://tnxkcso1.mirror.aliyuncs.com"]    5 }6 [root@k8s-master tomcat_demo]# cat /etc/sysconfig/docker7 # /etc/sysconfig/docker8 9 # Modify these options if you want to change the way the docker daemon runs
10 OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
11 # 信任私有仓库,镜像加速
12 # OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false
13 # --registry-mirror=https://registry.docker-cn.com --insecure-registry=192.168.110.133:5000'
14 
15 
16 
17 if [ -z "${DOCKER_CERT_PATH}" ]; then
18     DOCKER_CERT_PATH=/etc/docker
19 fi
20 
21 # Do not add registries in this file anymore. Use /etc/containers/registries.conf
22 # instead. For more information reference the registries.conf(5) man page.
23 
24 # Location used for temporary files, such as those created by
25 # docker load and build operations. Default is /var/lib/docker/tmp
26 # Can be overriden by setting the following environment variable.
27 # DOCKER_TMPDIR=/var/tmp
28 
29 # Controls the /etc/cron.daily/docker-logrotate cron job status.
30 # To disable, uncomment the line below.
31 # LOGROTATE=false
32 
33 # docker-latest daemon can be used by starting the docker-latest unitfile.
34 # To use docker-latest client, uncomment below lines
35 #DOCKERBINARY=/usr/bin/docker-latest
36 #DOCKERDBINARY=/usr/bin/dockerd-latest
37 #DOCKER_CONTAINERD_BINARY=/usr/bin/docker-containerd-latest
38 #DOCKER_CONTAINERD_SHIM_BINARY=/usr/bin/docker-containerd-shim-latest
39 [root@k8s-master tomcat_demo]# 

mysql的RC创建成功之后,开始创建svc,如下所示:

1 [root@k8s-master tomcat_demo]# cat mysql-svc.yml 2 apiVersion: v13 kind: Service4 metadata:5   name: mysql6 spec:7   ports:8     - port: 33069       targetPort: 3306
10   selector:
11     app: mysql
12 [root@k8s-master tomcat_demo]# 

创建命令和查看是否创建成功的,命令如下所示:

1 [root@k8s-master tomcat_demo]# kubectl create -f mysql-svc.yml 2 service "mysql" created3 [root@k8s-master tomcat_demo]# kubectl get svc 4 NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE5 kubernetes   10.254.0.1       <none>        443/TCP    13d6 mysql        10.254.245.194   <none>        3306/TCP   7s7 [root@k8s-master tomcat_demo]# kubectl get all -o wide8 NAME       DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                            SELECTOR9 rc/mysql   1         1         1         31m       mysql          192.168.110.133:5000/mysql:5.7.30   app=mysql
10 
11 NAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE       SELECTOR
12 svc/kubernetes   10.254.0.1       <none>        443/TCP    13d       <none>
13 svc/mysql        10.254.245.194   <none>        3306/TCP   28s       app=mysql
14 
15 NAME             READY     STATUS    RESTARTS   AGE       IP            NODE
16 po/mysql-537xf   1/1       Running   0          31m       172.16.16.3   k8s-master
17 [root@k8s-master tomcat_demo]# 

可以看到RC、SVC是通过selector进行关联起来的,而且pod也已经运行起来了。

mysql是已经创建完毕了,那么tomcat是如何和mysql连接起来的呢,这里还是通过环境变量来做的。服务与服务之间是通过VIP来进行连接的,tomcat要连接mysql就需要配置此环境变量MYSQL_SERVICE_HOST。

注意:如果你的项目已经开发好了,并且已经搞到了tomcat里面了,将这个tomcat打成镜像,然后上传到私有仓库,可以创建Pod这些。我的由于没有项目,这里就不进行tomcat的创建了,和mysql的类似。

1 apiVersion: v12 kind: ReplicationController3 metadata:4   name: myweb5 spec:6   replicas: 17   selector:8     app: myweb9   template:
10     metadata:
11       labels:
12         app: myweb
13     spec:
14       containers:
15         - name: myweb
16           image: 192.168.110.133:5000/tomcat-app:v2
17           ports:
18           - containerPort: 8080
19           env:
20           - name: MYSQL_SERVICE_HOST
21             value: '10.254.245.194'
22           - name: MYSQL_SERVICE_PORT
23             value: '3306'

创建tomcat的RC命令,如下所示:

首先,需要将镜像下载下来,然后上传到私有仓库才可以的哦。

1 [root@k8s-master ~]# docker pull docker.io/tomcat2 Using default tag: latest3 Trying to pull repository docker.io/library/tomcat ... 4 latest: Pulling from docker.io/library/tomcat5 e9afc4f90ab0: Pull complete 6 989e6b19a265: Pull complete 7 af14b6c2f878: Pull complete 8 5573c4b30949: Pull complete 9 fb1a405f128d: Pull complete 
10 612a9f566fdc: Pull complete 
11 cf63ebed1142: Pull complete 
12 fbb20561cd50: Pull complete 
13 e99c920870d7: Pull complete 
14 b7f793f2be47: Pull complete 
15 Digest: sha256:81c2a95e5b1b5867229d75255abe54928d505deb81c8ff8949b61fde1a5d30a1
16 Status: Downloaded newer image for docker.io/tomcat:latest
17 [root@k8s-master ~]# docker images 
18 REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
19 docker.io/tomcat                                      latest              2eb5a120304e        7 days ago          647 MB
20 192.168.110.133:5000/mysql                            5.7.30              9cfcce23593a        8 days ago          448 MB
21 docker.io/mysql                                       5.7.30              9cfcce23593a        8 days ago          448 MB
22 docker.io/busybox                                     latest              1c35c4412082        2 weeks ago         1.22 MB
23 docker.io/registry                                    latest              708bc6af7e5e        4 months ago        25.8 MB
24 192.168.110.133:5000/nginx                            1.15                53f3fd8007f7        13 months ago       109 MB
25 docker.io/nginx                                       1.15                53f3fd8007f7        13 months ago       109 MB
26 192.168.110.133:5000/nginx                            1.13                ae513a47849c        2 years ago         109 MB
27 docker.io/nginx                                       1.13                ae513a47849c        2 years ago         109 MB
28 registry.access.redhat.com/rhel7/pod-infrastructure   latest              99965fb98423        2 years ago         209 MB
29 192.168.110.133:5000/pod-infrastructure               latest              34d3450d733b        3 years ago         205 MB
30 [root@k8s-master ~]# docker tag docker.io/tomcat:latest 192.168.110.133:5000/tomcat:latest
31 [root@k8s-master ~]# docker push 192.168.110.133:5000/tomcat:latest 
32 The push refers to a repository [192.168.110.133:5000/tomcat]
33 123a7175f991: Pushed 
34 68b9387df273: Pushed 
35 a1c4399f9b22: Pushed 
36 4f866e977815: Pushed 
37 f73b2345c404: Pushed 
38 f5181c7ef902: Pushed 
39 2e5b4ca91984: Pushed 
40 527ade4639e0: Pushed 
41 c2c789d2d3c5: Pushed 
42 8803ef42039d: Pushed 
43 latest: digest: sha256:5e96c003ec31d89fa4b241463ee05a66ddc2cc58976dd1ecb54af313394cd19e size: 2421
44 [root@k8s-master ~]# 

这里就不搞了,具体内容可以看下《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第4版)》 这本书,这本书还是比较不错的,很喜欢。

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 解决删除元素动画的bug

    效果说明 首先说明一下我需要做到的效果 其实很简单---点击删除按钮的时候,加入删除动画 删除动画是这样的,高度和宽度都会均匀的变小,内部的元素需要被隐藏(因为会有文字挤在一起);直到变为0结束,时长为0.5s 一开始我是这样做的; 在base文件中创建一个删除类名,为它赋…...

    2024/4/24 14:25:17
  2. 云计算、云原生模式下 DevOps 的建设

    点击观看大咖分享在6月4日我们邀请了CODING团队的余朋飞老师来到腾讯云大学作”云计算、云原生模式下的DevOps建设“的精彩分享,让我们一起来回顾一下。首先会和大家分享我们当前对于整个应用生命周期的演变历程,然后讲解云计算模式下DevOps建设包含的过程、流程规范和标准,…...

    2024/5/2 15:29:58
  3. log cannot be reloved

    log cannot be reloved报错问题解决 报错 问题描述,无法解析log问题解决 在eclipse环境下使用@Slf4j注解时,出现了log cannot be resolved这个异常。原因是是缺少lombok插件的问题。 安装lombok插件即可...

    2024/5/6 23:17:56
  4. SpringMVC课程学习笔记-day04

    1.URL路径映射1)普通URL路径映射@RequestMapping(value="/test")@RequestMapping("/hello")注解中只出现一个参数且参数名为value的话,可以将参数名去掉@RequestMapping(value={"/test", "/user/hello"})多个URL路径可以映射到同一个处…...

    2024/5/3 15:26:06
  5. Shell脚本for,while,if语法事例

    示例1 for i in {1…100} do echo $i sleep 5 done 这个是最简单的从1到100逐个取数,然后打印出来,睡眠5秒,继续循环。 示例2 for ((i=1;i<=100;i++)) do echo $i sleep 5 done 这是另外一种写法,在循环里面添加判断。 示例3 read -p “请输入你的分数:” fenshu if [ $…...

    2024/4/27 15:20:12
  6. JAVA泛型注意点

    java泛型*泛型运用的时候应该注意两种情况,一般,也是这么建议使用的* 1.使用泛型时:? extends T* 我们只知道容器原本存放的是T和子类* 同时设置了上限,不能通过add添加数据,但是可以获取数据给父类及其子类。* 注意:d但是并不能够通过add对其中进行添加元素,先记住,…...

    2024/4/27 15:20:02
  7. 关于面试--【hive parquet数据格式内部结构】

    1创建表create table parquet_log(events string,header map<string,string> ) STORED AS PARQUET;CREATE TABLE dwt.tmp_detail_pc_channel Stored AS parquet AS select * form2PARQUET我们的开源项目 Parquet 是 Hadoop 上的一种支持列式存储文件格式,起初只是 Twitt…...

    2024/5/6 13:11:36
  8. LetCode---- 38.外观数列(字符串)

    题目 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下: 1 11 21 1211 1112211 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (“一个二” , “一个…...

    2024/5/5 10:23:44
  9. Kubernetes(k8s)安装dns附件组件以及使用

    1、K8s附加组件DNS服务。答:Kubernetes中有一个很重要的特性,服务子发现。一旦一个service被创建,该service的service ip和service port等信息都可以被注入到pod中供它们使用。kubernetes主要支持两种service发现机制,第一种是环境变量,第二种是DNS。没有dns服务的时候,k…...

    2024/4/27 19:24:00
  10. Flutter framework engine源码初探

    下图为flutter源码部分摘要:源码链接...

    2024/4/27 19:19:13
  11. 3、1000 个数范围是[1,999],有2个相同的数,请设计算法找出来

    3、1000 个数范围是[1,999],有2个相同的数,请设计算法找出来 **思路:**依次取出与其他所有对比 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int[] su=new int[1000]; for(int i=0;i<1…...

    2024/4/27 17:27:36
  12. SpringMVC课程学习笔记-day05

    1.Controller接收客户端传的参数1)参数是基本数据类型/包装类型/String@RequestMapping("test")public String test(int age){...}public String test(long id){...}public String test(boolean flag){...}public String test(Long id){...}public String test(Strin…...

    2024/4/27 14:17:00
  13. Java单例设计模式

    文章目录1、单例设计模式介绍2、单例设计模式八种方式2.1、饿汉式(静态常量)步骤代码实现优缺点说明2.2、饿汉式(静态代码块)代码实现优缺点说明2.3、懒汉式(线程不安全)代码实现优缺点说明2.4、懒汉式(线程安全,同步方法)代码实现优缺点说明2.5、懒汉式(线程安全,同步代…...

    2024/4/27 18:50:14
  14. iTunes C# Mobile Device API代码-立哥开发

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MobileDevice.Enumerates { public enum DeviceInfoKey {[Description("激活公钥")]ActivationPub…...

    2024/5/8 0:16:38
  15. 4购物车

    Shopping Cart店铺:麦象旗舰店电脑桌下键盘托架54抽屉滑轨到拖地60配件托盘70静音颜色分类:圆角70*27加强吊柜颜色备注¥89.36¥50.13-1+¥50.13移入收藏夹删除<div class="second-line"><div class="head-line"><input type="check…...

    2024/4/27 17:18:23
  16. 【庖丁解牛】从零实现RetinaNet(六):RetinaNet的训练与测试

    文章目录RetinaNet的训练在COCO数据集上测试RetinaNet在VOC数据集上测试RetinaNet完整训练与测试代码模型复现情况评估 所有代码已上传到本人github repository:https://github.com/zgcr/pytorch-ImageNet-CIFAR-COCO-VOC-training 如果觉得有用,请点个star哟! 下列代码均在…...

    2024/4/27 20:15:22
  17. 现在统一回答一下经常被问及的一个问题:java中比较重要的章节和内容有哪些、便于准备面试笔试。

    公司新人培训过程中,我们还是偏重于 1.基础语法的夯实、方法的有效定义、方法重载及重写的规范、 2.多态的理解和应用、不同接口的实现(函数接口对应的Lambda表达式应用)、 3.注解的使用、自定义、 4.泛型的理解、定义、及使用、 5.静态static的理解与使用;这些都是基础的东…...

    2024/4/27 18:07:53
  18. C++11新特性之右值引用

    C++11新特性之右值引用Rvalue references (右值引用) Rvalue references (右值引用) 左值:可以出现在operator=左边的 (左值与右值的根本区别在于能否获取内存地址,能取地址的即为左值,不能取地址的即为右值) 右值:只能出现在operator=右边的 通常临时对象(将亡值)、字…...

    2024/5/1 8:58:16
  19. ugui获取UI物体的长和宽

    宽:baigameObject.GetComponent().rect.width 高:gameObject.GetComponent().rect.height GetComponent().sizeDelta 或者GetComponent().rect.size 延展: UI(像素)坐标:RectTransform.position.x (0,0)表示最左下角的点...

    2024/5/4 17:17:00
  20. 第 194 场力扣周赛题解

    气死了啊,最后一题下标打错了,发现后已经来不及了。。。。。不过内推场能打到这个名次也还行。可是真的好可惜。5440. 数组异或操作思路:按照题目要求直接异或就okclass Solution {public int xorOperation(int n, int start) {int ans=0;for(int i=0;i<n;i++)ans^=start…...

    2024/4/27 20:38:37

最新文章

  1. 怎么清理服务器的C盘?

    有时候我们经常会遇到C盘被占满的情况&#xff0c;C盘被占满的原因有很多&#xff0c;下面我们就来分析下有可能导致C盘占满的原因&#xff1a; 第一种情况&#xff1a;中毒 打开服务器任务管理器选择进程&#xff0c;并且勾选显示所有用户的进程&#xff0c;我们可以点击映像…...

    2024/5/8 17:43:49
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 贪心算法|376.摆动序列

    力扣题目链接 class Solution { public:int wiggleMaxLength(vector<int>& nums) {if (nums.size() < 1) return nums.size();int curDiff 0;int preDiff 0;int result 1;for (int i 0; i < nums.size() - 1; i) {curDiff nums[i 1] - nums[i];if ((pre…...

    2024/5/8 7:12:06
  4. Docke搭建Lidarr

    Lidarr 是一个基于音乐的下载管理器&#xff0c;它可以监控多个 RSS 订阅源以查找用户指定类型的音乐并与支持的下载客户端协同工作。Lidarr 旨在自动化音乐下载过程&#xff0c;并整合到用户的音乐库中。它可以搜索歌曲&#xff0c;自动下载和整理音乐文件&#xff0c;更新元数…...

    2024/5/7 11:38:49
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57