1、K8s附加组件DNS服务。

答:Kubernetes中有一个很重要的特性,服务子发现。一旦一个service被创建,该service的service ip和service port等信息都可以被注入到pod中供它们使用。kubernetes主要支持两种service发现机制,第一种是环境变量,第二种是DNS。没有dns服务的时候,kubernetes会采用环境变量的形式,一个有很多service,环境变量会变得很复杂,为了解决这个问题,我们使用DNS服务。

 

2、Pod的环境变量如何查看呢?

1 [root@k8s-master ~]# kubectl get all -o wide2 NAME       DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                             SELECTOR3 rc/mysql   1         1         1         16h       mysql          192.168.110.133:5000/mysql:5.7.30    app=mysql4 rc/myweb   1         1         1         1h        myweb          192.168.110.133:5000/tomcat:latest   app=myweb5 6 NAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE       SELECTOR7 svc/kubernetes   10.254.0.1       <none>        443/TCP          13d       <none>8 svc/mysql        10.254.245.194   <none>        3306/TCP         16h       app=mysql9 svc/myweb        10.254.222.197   <nodes>       8080:30008/TCP   1h        app=myweb
10 
11 NAME             READY     STATUS    RESTARTS   AGE       IP            NODE
12 po/mysql-537xf   1/1       Running   1          16h       172.16.16.3   k8s-master
13 po/myweb-8b7n3   1/1       Running   0          1h        172.16.32.3   k8s-node3
14 [root@k8s-master ~]# kubectl exec -it myweb-8b7n3 /bin/bas
15 base64      basename    bash        bashbug     bashbug-64  
16 [root@k8s-master ~]# kubectl exec -it myweb-8b7n3 /bin/bas
17 base64      basename    bash        bashbug     bashbug-64  
18 [root@k8s-master ~]# kubectl exec -it myweb-8b7n3 /bin/bash
19 root@myweb-8b7n3:/usr/local/tomcat# env 
20 KUBERNETES_SERVICE_PORT_HTTPS=443
21 MYSQL_PORT=tcp://10.254.245.194:3306
22 MYSQL_PORT_3306_TCP_ADDR=10.254.245.194
23 KUBERNETES_SERVICE_PORT=443
24 MYSQL_PORT_3306_TCP_PORT=3306
25 HOSTNAME=myweb-8b7n3
26 JAVA_HOME=/usr/local/openjdk-11
27 GPG_KEYS=05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23
28 JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_
29 MYSQL_PORT_3306_TCP=tcp://10.254.245.194:3306
30 PWD=/usr/local/tomcat
31 JAVA_URL_VERSION=11.0.7_10
32 TOMCAT_SHA512=75e16a00e02782961a7753dc9afaf6d209afa5f22d320319778fd0ee5e3b47009da522ac735599f1739bff6e809c2da9081dbbd4b8de54a82cf5b8cfbd8030ff
33 TOMCAT_MAJOR=9
34 HOME=/root
35 LANG=C.UTF-8
36 KUBERNETES_PORT_443_TCP=tcp://10.254.0.1:443
37 TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib
38 TERM=xterm
39 MYSQL_SERVICE_PORT=3306
40 CATALINA_HOME=/usr/local/tomcat
41 MYSQL_SERVICE_HOST=10.254.245.194
42 MYSQL_PORT_3306_TCP_PROTO=tcp
43 SHLVL=1
44 KUBERNETES_PORT_443_TCP_PROTO=tcp
45 KUBERNETES_PORT_443_TCP_ADDR=10.254.0.1
46 LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib
47 KUBERNETES_SERVICE_HOST=10.254.0.1
48 KUBERNETES_PORT=tcp://10.254.0.1:443
49 KUBERNETES_PORT_443_TCP_PORT=443
50 PATH=/usr/local/tomcat/bin:/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
51 TOMCAT_VERSION=9.0.36
52 JAVA_VERSION=11.0.7
53 _=/usr/bin/env
54 root@myweb-8b7n3:/usr/local/tomcat# java -version
55 openjdk version "11.0.7" 2020-04-14
56 OpenJDK Runtime Environment 18.9 (build 11.0.7+10)
57 OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10, mixed mode)
58 root@myweb-8b7n3:/usr/local/tomcat# 

如果有几个Service就会有几个环境变量,这里进行简单的过滤。

1 root@myweb-hsdwn:/usr/local/tomcat# env | grep -iE 'kubernetes|mysql|myweb'2 KUBERNETES_SERVICE_PORT_HTTPS=4433 MYSQL_PORT=tcp://10.254.207.238:33064 MYSQL_PORT_3306_TCP_ADDR=10.254.207.2385 KUBERNETES_SERVICE_PORT=4436 MYSQL_PORT_3306_TCP_PORT=33067 HOSTNAME=myweb-hsdwn8 MYSQL_PORT_3306_TCP=tcp://10.254.207.238:33069 KUBERNETES_PORT_443_TCP=tcp://10.254.0.1:443
10 MYSQL_SERVICE_PORT=3306
11 MYSQL_SERVICE_HOST=10.254.207.238
12 MYSQL_PORT_3306_TCP_PROTO=tcp
13 KUBERNETES_PORT_443_TCP_PROTO=tcp
14 KUBERNETES_PORT_443_TCP_ADDR=10.254.0.1
15 KUBERNETES_SERVICE_HOST=10.254.0.1
16 KUBERNETES_PORT=tcp://10.254.0.1:443
17 KUBERNETES_PORT_443_TCP_PORT=443
18 root@myweb-hsdwn:/usr/local/tomcat# 
1 root@myweb-hsdwn:/usr/local/tomcat# env | grep -iE 'kubernetes|mysql|myweb' | wc -l
2 16
3 root@myweb-hsdwn:/usr/local/tomcat# 

如果环境变量过多的话,会变得很复杂,所以引入了DNS服务。

3、下载DNS的资料包,如下所示:

1 [root@k8s-master tomcat_demo]# wget https://www.qstack.com.cn/skydns.zip2 --2020-06-18 15:31:25--  https://www.qstack.com.cn/skydns.zip3 Resolving www.qstack.com.cn (www.qstack.com.cn)... 123.125.46.149, 111.202.85.374 Connecting to www.qstack.com.cn (www.qstack.com.cn)|123.125.46.149|:443... connected.5 HTTP request sent, awaiting response... 200 OK6 Length: 3411 (3.3K) [application/zip]7 Saving to: ‘skydns.zip’8 9 100%[======================================================================================>] 3,411       --.-K/s   in 0s      
10 
11 2020-06-18 15:31:26 (40.5 MB/s) - ‘skydns.zip’ saved [3411/3411]
12 
13 [root@k8s-master tomcat_demo]# ls
14 mysql-rc.yml  mysql-svc.yml  skydns.zip  tomcat-rc.yml  tomcat-svc.yml
15 [root@k8s-master tomcat_demo]# cd ..
16 [root@k8s-master k8s]# mv tomcat_demo/skydns.zip .
17 [root@k8s-master k8s]# ls
18 book-master.war  deploy  pod  rc  skydns.zip  svc  tomcat_demo  tomcat_demo.zip
19 [root@k8s-master k8s]# unzip skydns.zip 
20 Archive:  skydns.zip
21    creating: skydns/
22   inflating: skydns/skydns-rc.yaml   
23   inflating: skydns/skydns-svc.yaml  
24   inflating: skydns/test_dns_pod.yaml  
25 [root@k8s-master k8s]# ls
26 book-master.war  deploy  pod  rc  skydns  skydns.zip  svc  tomcat_demo  tomcat_demo.zip
27 [root@k8s-master k8s]# 

修改skydns-rc.yaml配置文件。

1 # Copyright 2016 The Kubernetes Authors.2 #3 # Licensed under the Apache License, Version 2.0 (the "License");4 # you may not use this file except in compliance with the License.5 # You may obtain a copy of the License at6 #7 #     http://www.apache.org/licenses/LICENSE-2.08 #9 # Unless required by applicable law or agreed to in writing, software10 # distributed under the License is distributed on an "AS IS" BASIS,11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12 # See the License for the specific language governing permissions and13 # limitations under the License.14 15 # TODO - At some point, we need to rename all skydns-*.yaml.* files to kubedns-*.yaml.*16 # Should keep target in cluster/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml17 # in sync with this file.18 19 # __MACHINE_GENERATED_WARNING__20 21 apiVersion: extensions/v1beta122 kind: Deployment23 metadata:24   name: kube-dns25   namespace: kube-system26   labels:27     k8s-app: kube-dns28     kubernetes.io/cluster-service: "true"29 spec:30   replicas: 131   # replicas: not specified here:32   # 1. In order to make Addon Manager do not reconcile this replicas parameter.33   # 2. Default is 1.34   # 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.35   strategy:36     rollingUpdate:37       maxSurge: 10%38       maxUnavailable: 039   selector:40     matchLabels:41       k8s-app: kube-dns42   template:43     metadata:44       labels:45         k8s-app: kube-dns46       annotations:47         scheduler.alpha.kubernetes.io/critical-pod: ''48         scheduler.alpha.kubernetes.io/tolerations: '[{"key":"CriticalAddonsOnly", "operator":"Exists"}]'49     spec:50       containers:51       - name: kubedns52         image: myhub.fdccloud.com/library/kubedns-amd64:1.953         resources:54           # TODO: Set memory limits when we've profiled the container for large55           # clusters, then set request = limit to keep this container in56           # guaranteed class. Currently, this container falls into the57           # "burstable" category so the kubelet doesn't backoff from restarting it.58           limits:59             memory: 170Mi60           requests:61             cpu: 100m62             memory: 70Mi63         livenessProbe:64           httpGet:65             path: /healthz-kubedns66             port: 808067             scheme: HTTP68           initialDelaySeconds: 6069           timeoutSeconds: 570           successThreshold: 171           failureThreshold: 572         readinessProbe:73           httpGet:74             path: /readiness75             port: 808176             scheme: HTTP77           # we poll on pod startup for the Kubernetes master service and78           # only setup the /readiness HTTP server once that's available.79           initialDelaySeconds: 380           timeoutSeconds: 581         args:82         - --domain=cluster.local.83         - --dns-port=1005384         - --config-map=kube-dns85         - --kube-master-url=http://10.0.0.11:808086         # This should be set to v=2 only after the new image (cut from 1.5) has87         # been released, otherwise we will flood the logs.88         - --v=089         #__PILLAR__FEDERATIONS__DOMAIN__MAP__90         env:91         - name: PROMETHEUS_PORT92           value: "10055"93         ports:94         - containerPort: 1005395           name: dns-local96           protocol: UDP97         - containerPort: 1005398           name: dns-tcp-local99           protocol: TCP
100         - containerPort: 10055
101           name: metrics
102           protocol: TCP
103       - name: dnsmasq
104         image: myhub.fdccloud.com/library/kube-dnsmasq-amd64:1.4
105         livenessProbe:
106           httpGet:
107             path: /healthz-dnsmasq
108             port: 8080
109             scheme: HTTP
110           initialDelaySeconds: 60
111           timeoutSeconds: 5
112           successThreshold: 1
113           failureThreshold: 5
114         args:
115         - --cache-size=1000
116         - --no-resolv
117         - --server=127.0.0.1#10053
118         #- --log-facility=-
119         ports:
120         - containerPort: 53
121           name: dns
122           protocol: UDP
123         - containerPort: 53
124           name: dns-tcp
125           protocol: TCP
126         # see: https://github.com/kubernetes/kubernetes/issues/29055 for details
127         resources:
128           requests:
129             cpu: 150m
130             memory: 10Mi
131       - name: dnsmasq-metrics
132         image: myhub.fdccloud.com/library/dnsmasq-metrics-amd64:1.0
133         livenessProbe:
134           httpGet:
135             path: /metrics
136             port: 10054
137             scheme: HTTP
138           initialDelaySeconds: 60
139           timeoutSeconds: 5
140           successThreshold: 1
141           failureThreshold: 5
142         args:
143         - --v=2
144         - --logtostderr
145         ports:
146         - containerPort: 10054
147           name: metrics
148           protocol: TCP
149         resources:
150           requests:
151             memory: 10Mi
152       - name: healthz
153         image: myhub.fdccloud.com/library/exechealthz-amd64:1.2
154         resources:
155           limits:
156             memory: 50Mi
157           requests:
158             cpu: 10m
159             # Note that this container shouldn't really need 50Mi of memory. The
160             # limits are set higher than expected pending investigation on #29688.
161             # The extra memory was stolen from the kubedns container to keep the
162             # net memory requested by the pod constant.
163             memory: 50Mi
164         args:
165         - --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1 >/dev/null
166         - --url=/healthz-dnsmasq
167         - --cmd=nslookup kubernetes.default.svc.cluster.local 127.0.0.1:10053 >/dev/null
168         - --url=/healthz-kubedns
169         - --port=8080
170         - --quiet
171         ports:
172         - containerPort: 8080
173           protocol: TCP
174       dnsPolicy: Default  # Don't use cluster DNS.

需要将此地址的ip地址修改为自己api-server的地址。

开始创建RC,创建需要很长时间的。

1 [root@k8s-master skydns]# kubectl create -f skydns-rc.yaml 
2 deployment "kube-dns" created
3 [root@k8s-master skydns]# 

开始创建SVC,修改配置文件,使用kubectl get svc查看CLUSTER-IP的地址,只要未被使用,就可以配置到skydns-svc.yaml 配置文件中即可。

1 [root@k8s-master ~]# kubectl get svc 
2 NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
3 kubernetes   10.254.0.1       <none>        443/TCP          13d
4 mysql        10.254.207.238   <none>        3306/TCP         42m
5 myweb        10.254.29.22     <nodes>       8080:30008/TCP   28m
6 [root@k8s-master ~]# 

创建svc的命令,如下所示:

1 [root@k8s-master skydns]# vim skydns-svc.yaml 
2 [root@k8s-master skydns]# kubectl create -f skydns-svc.yaml 
3 service "kube-dns" created
4 [root@k8s-master skydns]#

根据命名空间来查看创建好的pod,可以看到这个Pod里面的四个容器都已经运行起来了。

1 [root@k8s-master skydns]# kubectl get pod --namespace=kube-system
2 NAME                       READY     STATUS    RESTARTS   AGE
3 kube-dns-778415672-f9ssw   4/4       Running   0          6m
4 [root@k8s-master skydns]# 
1 [root@k8s-master skydns]# kubectl get all --namespace=kube-system2 NAME              DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE3 deploy/kube-dns   1         1         1            1           7m4 5 NAME           CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE6 svc/kube-dns   10.254.230.254   <none>        53/UDP,53/TCP   3m7 8 NAME                    DESIRED   CURRENT   READY     AGE9 rs/kube-dns-778415672   1         1         1         7m
10 
11 NAME                          READY     STATUS    RESTARTS   AGE
12 po/kube-dns-778415672-f9ssw   4/4       Running   0          7m
13 [root@k8s-master skydns]# 

如果希望所有的Pod都使用DNS的话,还需要修改一下配置文件。修改kubelet配置,修改各个node节点上的/etc/kubernetes/kubelet配置文件,增加如下行。然后再重启各个node节点的kubelet。

4、修改kubelet配置,修改各个node节点上的/etc/kubernetes/kubelet配置文件,增加如下行。然后再重启各个node节点的kubelet。

1 KUBELET_ARGS="--cluster_dns=10.254.230.254 --cluster_domain=cluster.local"

这个地址就是刚才自己配置的svc的地址,可以使用命令进行查看。

1 [root@k8s-master skydns]# vim /etc/kubernetes/kubelet 
2 [root@k8s-master skydns]# kubectl get svc --namespace=kube-system
3 NAME       CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
4 kube-dns   10.254.230.254   <none>        53/UDP,53/TCP   9m
5 [root@k8s-master skydns]# 

然后重启三台Node节点的kubelet服务。

1 [root@k8s-master skydns]# systemctl restart kubelet.service 
2 
3 [root@k8s-node2 ~]# systemctl restart kubelet.service
4 
5 [root@k8s-node3 ~]# systemctl restart kubelet.service

如何测试DNS是否生效呢,可以使用下面的配置进行测试。

1 [root@k8s-master skydns]# ls2 skydns-rc.yaml  skydns-svc.yaml  test_dns_pod.yaml3 [root@k8s-master skydns]# cat test_dns_pod.yaml 4 apiVersion: v15 kind: Pod6 metadata:7   labels:8     name: busybox9     role: master
10   name: busybox2
11 spec:
12   containers:
13   - name: busybox
14     image: docker.io/busybox:latest
15     imagePullPolicy: IfNotPresent
16     command:
17     - sleep
18     - "3600"
19 [root@k8s-master skydns]# kubectl create -f test_dns_pod.yaml 
20 pod "busybox2" created
21 [root@k8s-master skydns]# kubectl get pods
22 NAME          READY     STATUS    RESTARTS   AGE
23 busybox2      1/1       Running   0          20s
24 mysql-lmx4s   1/1       Running   0          59m
25 myweb-hsdwn   1/1       Running   0          45m
26 [root@k8s-master skydns]# kubectl exec -it busybox2 sh
27 / # 

可以检测一下,svc的vip是否可以解析出来。

1 / # nslookup mysql
2 Server:        10.254.230.254
3 Address:    10.254.230.254:53
4 
5 Name:    mysql.default.svc.cluster.local
6 Address: 10.254.207.238

可以看出来和SVC的地址一样。

1 [root@k8s-master ~]# kubectl get svc 
2 NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
3 kubernetes   10.254.0.1       <none>        443/TCP          13d
4 mysql        10.254.207.238   <none>        3306/TCP         1h
5 myweb        10.254.29.22     <nodes>       8080:30008/TCP   46m
6 [root@k8s-master ~]# 

注意,刚才创建的dns服务,只有新起的pod里面才可以使用,如果已经存在的pod里面还没有使用dns服务的。如果想要之前的pod使用dns服务,需要将他们删除掉,重新创建一下的。

备注:如果配置好了DNS之后,创建的RC里面就可以不使用环境变量的地址(即VIP的地址),可以使用service(svc)的名称既可以找到这个service。

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

相关文章

  1. Flutter framework engine源码初探

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

    2024/4/27 19:19:13
  2. 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
  3. 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
  4. Java单例设计模式

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

    2024/4/27 18:50:14
  5. 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/4/27 19:10:37
  6. 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
  7. 【庖丁解牛】从零实现RetinaNet(六):RetinaNet的训练与测试

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

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

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

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

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

    2024/4/27 5:22:42
  10. ugui获取UI物体的长和宽

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

    2024/4/27 17:19:19
  11. 第 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/15 3:14:38
  12. 力扣周赛 5442. 避免洪水泛滥(min型线段树)

    你的国家有无数个湖泊,所有湖泊一开始都是空的。当第 n 个湖泊下雨的时候,如果第 n 个湖泊是空的,那么它就会装满水,否则这个湖泊会发生洪水。你的目标是避免任意一个湖泊发生洪水。给你一个整数数组 rains ,其中:rains[i] > 0 表示第 i 天时,第 rains[i] 个湖泊会下…...

    2024/4/27 18:39:07
  13. Django(part27)--聚合查询

    学习笔记,仅供参考文章目录数据库的操作(CRUD操作)聚合查询不分组聚合分组聚合数据库的操作(CRUD操作)聚合查询聚合查询是指对某个数据表中的某个字段的数据计算其统计量,比如,求出bookstore_book数据表中书的平均价格,查询所有书的总个数等等等。不分组聚合不带分组的聚合…...

    2024/4/24 14:24:57
  14. 机器学习算法准备提升——聚类算法

    聚类是一种无标签数据输入的算法。 每个聚类算法都有两个变量:类别:调用fit方法在训练集上去学习聚合成多个类别; 给定的训练数据一、K-Means KMeans算法通过试着在n组方差相等的样本中分类样本来聚类数据,最小化评价标准。这个算法需要指明聚类的个数。它可以很好的拓展到…...

    2024/4/24 14:24:57
  15. RabbitMQ的介绍,安装,使用

    RabbitMQRabbitMQ1.MQ简介2.使用场景2.1.流量削峰流量削峰的由来2.2 日志处理2.3 应用解耦2.4 异步处理3. RabbitMQ简介4. AMQP 协议5. Windows环境下单节点安装下载安装包安装erlang:安装rabbitmq6.RabbitMQ 管理界面使用添加用户添加Virtual Host授权:7.RabbitMQ 消息种类7…...

    2024/4/24 14:24:55
  16. 操作系统实验——磁盘调度算法(FIFS SSTF SCAN)

    操作系统实验——磁盘调度算法(FIFS SSTF SCAN) 一、实验目的 1、了解磁盘调度的策略和原理; 2、理解和掌握磁盘调度算法——先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、电梯扫描算法(SCAN)。 二、实验内容 1、模拟先来先服务法(First-Come, First-Served,…...

    2024/4/24 14:24:54
  17. 贝叶斯网络之父Judea Pearl:要建立真正的人工智能,少不了因果推理

    贝叶斯网络之父Judea Pearl:要建立真正的人工智能,少不了因果推理 2011年图灵奖得主,贝叶斯网络之父Judea Pearl认为现在人工智能的发展进入的新的瓶颈期,各种新的成果不过本质上不过是重复简单的“曲线拟合”工作。Pearl 认为人们应该更关注人工智能中的因果(Cause and E…...

    2024/4/24 14:24:53
  18. 关于百度七日打卡——强化学习的感悟

    1.刚开始第一个作业搭建环境PARL: PARL是一个算法库,是对Agent的框架抽象。简单来说就是在一台机器上调用pip install parl,就可以启动集群并行计算,使运算加速。 PS:心里窃喜,对于我们小白,非常友好,因为之前有机器学习的基础,又经常~~白嫖~~ 参加aistudio的活动,所以…...

    2024/4/24 14:24:53
  19. leetcode-6_递归和回溯

    算法总结递归和回溯中的常见问题1.树形问题2.什么是回溯3.排列问题4.组合问题5.回溯法解决问题的优化6.二维平面上的回朔法7.foodfill算法8.回朔法是人工智能的基础 递归和回溯中的常见问题 1.树形问题 Leetcode相关题目: 17 (1) 电话号码的字母组合。(LeetCode:17) 2.什…...

    2024/4/24 14:24:51
  20. contos 文件操作

    contos 操作 xshell脚本 入门到放弃,边操作边记录 查看文件夹及文件: ls创建文件夹: mkdir 文件夹名进入文件夹:cd 文件夹名返回上一层: cd..创建文件: touch 文件名.后缀编辑文件:vi 文件名.后缀保存:按esc键,输入 :wq:w 保存文件但不退出 :w file 将修改另外保存…...

    2024/4/24 14:24:50

最新文章

  1. 编程学习路线

    Java最强学习路线 快来官网定制一套属于自己的学习路线吧 官方网址&#xff1a; Learn to become a modern Java developerCommunity driven, articles, resources, guides, interview questions, quizzes for java development. Learn to become a modern Java developer by…...

    2024/4/27 19:22:22
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 【Redis】安装Redis后报ERR Client sent AUTH, but no password is set

    一、问题描述 安装Redis后使用auth验证是否安装成功&#xff08;或者其它应用访问redis时报错&#xff09;&#xff0c;报ERR Client sent AUTH, but no password is set 127.0.0.1:6379> auth 123456 (error) ERR Client sent AUTH, but no password is set二、问题解决 …...

    2024/4/25 10:11:11
  4. 文件系统 FTP Ubuntu 安装入门介绍

    FTP 环境: Ubuntu 14.04 blog zh_CN ubuntu14.04 Install 全新安装&#xff1a;apt-get install vsftpd 重新安装:apt-get --reinstall install vsftpd 卸载并清除配置文件&#xff1a;apt-get --purge remove vsftpd Start & Restart $ service vsftpd start $ se…...

    2024/4/26 19:07:53
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/4/26 20:12:18
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

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

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

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

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

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

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

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

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

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

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/4/26 22:01:59
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

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

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

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/27 8:32:30
  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