kubernetes 1.13 全新安装指南

发表于 3年以前  | 总阅读数:312 次

kubernetes官方提供了中文文档,网上也有不少中文教程,可是实际的安装过程中,还是遇到了不少的坑。主要有:

1 . kubernetes的版本迭代比较迅速。网上教程中版本多是 1.6这样的,最新的k8s版本是 1.13.0 2. kubernetes的需要安装的rpm包及docker镜像国内直接安装会失败。 3. 官方的中文文档在翻译不全,其中一些内容缺失。

发文时kubernetes1.14.0已经正式发布,稍后会奉上更新手册, 敬请期待。

我花了一些时间踩坑,主要参考kubernetes官网、github及stack overflow, 成功完成k8s的安装,过程记录如下。

机器准备

我在内网的2台服务器上开始k8s的安装,机器配置及规划如下表:

机器名称 机器IP CPU 内存 Linux版本 Docker版本 用途
192-168-10-21 192.168.10.21 8 16G CentOS 7.1.1503 17.03.2-ce/17.03.2-ce master控制节点
192-168-10-18 192.168.10.18 8 28G CentOS 7.6.1810 17.03.1-ce/17.03.1-ce worker业务节点

Docker版本为:Client Version/Server Version的格式

本次安装的k8s版本是 v1.13.0 ,另外实测CentOS的小版本和Docker的小版本不用完全一致。

安装环境准备及安装

安装k8s设备环境要求主要有下面10点:

1. CentOS版本为7以上
2. 2核CPU和2G内存以上
3. 多台机器内网互通
4. 每台机器的主机名、mac地址和product_uuid唯一
5. 测试环境关闭防火墙,保证全部端口开放。
6. 禁用SELinux
7. 禁用交换分区
8. docker服务
9. root账号权限
10. 配置国内的repo源

1 . 查看机器CentOS版本

[root@192-168-10-21 ~]# cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

注意CentOS6升级到7比较麻烦,本着少折腾原则,从CentOS7的机器开始会省事一些。

1 . 查看机器的cpu和内存信息

比较简单和常用的可以使用 TOP命令后再按 1查看:

TOP 1
Tasks: 200 total, 1 running, 199 sleeping, 0 stopped, 0 zombie
%Cpu0 : 2.0 us, 1.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 1.0 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.7 us, 0.7 sy, 0.0 ni, 98.3 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu4 : 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu5 : 1.3 us, 0.7 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu6 : 0.7 us, 0.7 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu7 : 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16207100 total, 13269888 free, 974208 used, 1963004 buff/cache

上面信息可知,机器是8核,内存是16G。

更准确的查看CPU信息:

# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
8 Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz

查看内存信息:

# cat /proc/meminfo | grep MemTotal
MemTotal: 16207100 kB 0 0 0
  1. 多台机器互通,这一般没有问题,不用介绍。
  2. 检查机器名称、mac及product_uuid的唯一性
# 查看uuid
# cat /sys/class/dmi/id/product_uuid
564D0DF3-FB05-2EC7-E989-FFE0F880069C
# 查看hostname
# hostname
192-168-10-21
# 查看IP
# ifconfig -a

ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.21 netmask 255.255.255.0 broadcast 192.168.10.255
inet6 fe80::20c:29ff:fe80:69c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:80:06:9c txqueuelen 1000 (Ethernet)
RX packets 5333851 bytes 529922710 (505.3 MiB)
RX errors 0 dropped 152075 overruns 0 frame 0
TX packets 2560325 bytes 916120110 (873.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

一般来说uuid和mac不可能重复,hostname可能会有重复(因为运维开机器是脚本批处理,可能没有修改hostname)。如果hostname重复,修改的方法如下:

1 vi /etc/hostname 修改名称。2 vi /etc/hosts 增加机器名称。 3 roboot重启机器。

1 . 关闭防火墙

k8s对master和worker节点的端口开放有要求:

因为是内网测试服务,我简单粗暴的关闭防火墙即可。

查看firewall状态:

# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)

查看iptables状态:

# systemctl status iptables
● iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
Active: inactive (dead)

关闭防火墙 systemctl stop firewalld 停止防护墙开机启动 systemctl disable firewalld。iptables的关闭同理。

1 . 禁用SELinux

禁用SELinux后,容器才能够访问宿主机文件系统。查看SELinux的状态:

# sestatus
SELinux status: disabled

禁用方法 setenforce0&&sed-i's/^SELINUX=enforcing$/SELINUX=permissive/'/etc/selinux/config

1 . 禁用交换分区

查看交换分区状态,如果swap数值全部为0,则表示已经禁用。

[root@192-168-10-21 ~]# free -h
total used free shared buff/cache available
Mem: 15G 940M 13G 17M 1.4G 14G
Swap: 0B 0B 0B

禁用方法如下

1. run swapoff -a : this will immediately disable swap.
2. remove any swap entry from /etc/fstab.
3. reboot.

1 . docker服务

查看docker版本:

[root@192-168-10-18 ~]# docker version
Client:
Version: 17.03.1-ce
API version: 1.27
Go version: go1.7.5
Git commit: c6d412e
Built: Mon Mar 27 17:05:44 2017
OS/Arch: linux/amd64

Server:
Version: 17.03.1-ce
API version: 1.27 (minimum version 1.12)
Go version: go1.7.5
Git commit: c6d412e
Built: Mon Mar 27 17:05:44 2017
OS/Arch: linux/amd64
Experimental: false

1 . root账号

安装 kubeadm 时候需要使用root账号进行安装。安装完成后推荐非root账号使用 kubectl 命令。

1 . 配置国内的repo源

kubeadm使用 yum命令进行安装,使用国内阿里云的源,可以安装成功

cat >> /etc/yum.repos.d/kubernetes.repo <<EOF 
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

1 . 修改网络配置

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

修改完成后执行 sysctl--system应用。

  1. 安装kubernetes包

安装条件全部具备以后, root 账号进入 192-168-10-21 ,执行下面命令:

[root@192-168-10-21 ~]# yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

完成后启动 kubelet服务

systemctl enable kubelet.service
systemctl start kubelet.service

以上12项操作需要在所有节点执行。

初始化k8s集群

1.1 初始化集群

master上使用下面命令初始化k8s:

kubeadm init --kubernetes-version v1.13.0 --pod-network-cidr=10.244.0.0/16

成功后会有下面的输出:

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node
as root:

kubeadm join 192.168.10.21:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:564e3ba4b76649e981300fcea9e4400b759f91a02f4a968e035ada454f3a1d2e

这段提示主要介绍了3点:

1. 推荐非root账号使用`kubectl`命令。本文使用hall账号。
2. 需要在集群中创建pod network。本文使用flannel, 初始化命令中的`--pod-network-cidr=10.244.0.0/16`是使用flannel的必备参数,详情见官方英文文档。
3. 显示了其它节点加入集群的命令。

查看kubectl的版本信息:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.0", GitCommit:"ddf47ac13c1a9483ea035a79cd7c10005ff21a6d", GitTreeState:"clean", BuildDate:"2018-12-03T21:04:45Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.0", GitCommit:"ddf47ac13c1a9483ea035a79cd7c10005ff21a6d", GitTreeState:"clean", BuildDate:"2018-12-03T20:56:12Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}

查看节点:

[hall@192-168-10-21 ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
192-168-10-21 NotReady master 41m v1.13.0

这里master的状态为NotReady是因为还没有进行pod network安装。

1.2 使用阿里云的docker hub镜像

如果网络ok,使用1.1的方法安装不会存在问题。但是国内可能一些镜像无法下载,可以使用阿里云的docker hub镜像进行安装。

首先输出 kubeadm默认配置:

kubeadm config print init-defaults > kubeadm-init.yaml

配置内容大概如下:

apiVersion: kubeadm.k8s.io/v1beta1
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 1.2.3.4
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
name: 192-168-10-21
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/master
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta1
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: ""
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.13.0
networking:
dnsDomain: cluster.local
podSubnet: ""
serviceSubnet: 10.244.0.0/16
scheduler: {}

注意:

  1. imageRepository修改成 registry.cn-hangzhou.aliyuncs.com/google_containers
  2. serviceSubnet部分设置成10.244.0.0/16,也就是--pod-network-cidr=10.244.0.0/16参数。

然后先进行镜像下载:

kubeadm config images pull --config kubeadm-init.yaml

最后再使用修改后的配置进行初始化:

kubeadm init --config kubeadm-init.yaml

也可以通过在每个节点得docker daemon.json 中配置镜像方式提速下载。

1 . work节点加入

在work节点上执行kubeadm init完成后得到的join命令:

[root@192-168-10-18 ~]#kubeadm join 192.168.10.21:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:564e3ba4b76649e981300fcea9e4400b759f91a02f4a968e035ada454f3a1d2e

再次在master上查看节点:

[hall@192-168-10-21 ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
192-168-10-18 NotReady <none> 98s v1.13.0
192-168-10-21 NotReady master 41m v1.13.0

可以看到work节点192-168-10-18已经正常加入k8s集群了。

1 . 后期work节点加入

如果join命令丢失或者过期,可以在master上执行下面命令,生成一个token:

[root@192-168-10-21 ~]# kubeadm token generate
ffppwv.04qrmsdwm6netaaq

然后使用刚生成得token得到加入命令:

[root@192-168-10-21 ~]# kubeadm token create ffppwv.04qrmsdwm6netaaq --print-join-command --ttl=24h
kubeadm join 192.168.10.21:6443 --token pnstpk.kk3aevbn6i5mlsok --discovery-token-ca-cert-hash sha256:5ae89f1949e60f824b129c5520dc05f6da97cb8fa3edb806c3abb38eb439e007
  1. --ttl=24h 代表这个Token 的有效期为 24 小时,初始化默认生成的 token 有效期也为 24 小时
  2. join的语法是: kubeadm join--token<token><master-ip>:<master-port>--discovery-token-ca-cert-hash sha256:<hash>

然后work节点使用这个命令加入集群。

1 . 安装flannel网络

安装flannel网络很简单,分下面2步:

先下载yml文件:

curl -O https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml

然后创建flannel:

kubectl create -f kube-flannel.yml

完成后可以检查:

[hall@192-168-10-21 ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
192-168-10-18 Ready <none> 102d v1.13.0
192-168-10-21 Ready master 102d v1.13.0

这时候节点的状态应该是Ready。同时也可以查看flannel的pod:

[tyhall51@192-168-10-21 ~]$ kubectl get pods -n kube-system | grep flannel
kube-flannel-ds-amd64-j7lxz 1/1 Running 1 102d
kube-flannel-ds-amd64-lzjxg 1/1 Running 10 102d

1 . 删除节点

删除节点可以使用:

kubeclt delete node 192-168-10-18

Dashboard安装

k8s完成后,可以使用 kubectl 进行所有控制。官方还提供了dashboard这种web界面,方便管理,一样分2步。

先下载配置:

curl -o kubernetes-dashboard.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
curl -o heapster.yaml https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/influxdb.yaml
curl -o heapster-rbac.yaml https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/rbac/heapster-rbac.yaml
curl -o influxdb.yaml https://raw.githubusercontent.com/kubernetes/heapster/master/deploy/kube-config/influxdb/influxdb.yaml

然后创建:

kubectl create -f kubernetes-dashboard.yaml 
kubectl create -f heapster.yaml 
kubectl create -f heapster-rbac.yaml 
kubectl create -f influxdb.yaml

也可以使用 kubectl create-f. 一键将目录下所有的yaml配置到k8s。

使用命令修改服务类型:

kubectl -n kube-system edit service kubernetes-dashboard

修改 type: ClusterIPtype: NodePort 保存。 (kubectl edit 和vi一样操作)

测试服务使用NodePort暴露到集群外,方便访问

然后查看dashboard暴露出来的本地端口:

[hall@192-168-10-21 dashboard]$ kubectl -n kube-system get service kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.96.228.185 <none> 443:32145/TCP 6d21

熟悉docker的就会知道,这里显示了dashboard容器的443端口映射到本地32145端口,然后我们使用 https://192.168.10.21:32145访问.

访问需要token登录,下面是获取token的命令:

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')

效果如下:

增加Master节点

完成之前的内容,已经有一个初具规模的k8s集群了。如果要比较正式的集群,结合etcd的特性,控制节点多备,至少需要3台master节点。接下来继续介绍一下如何添加master节点。

使用命令 使用命令 kubectl-n kube-system edit cm kubeadm-config 修改controlPlaneEndpoint值为192.168.10.21:6443,然后确认信息修改完成:

[hall@192-168-10-21 ~]$ kubectl -n kube-system get cm kubeadm-config -oyaml
apiVersion: v1
data:
ClusterConfiguration: |
apiServer:
extraArgs:
authorization-mode: Node,RBAC
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta1
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controlPlaneEndpoint: "192.168.10.21:6443"
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.13.0
networking:
dnsDomain: cluster.local
podSubnet: 10.244.0.0/16
serviceSubnet: 10.96.0.0/12
scheduler: {}
ClusterStatus: |
apiEndpoints:
192-168-10-21:
advertiseAddress: 192.168.10.21
bindPort: 6443
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterStatus
kind: ConfigMap
metadata:
creationTimestamp: "2018-12-14T03:12:12Z"
name: kubeadm-config
namespace: kube-system
resourceVersion: "13566522"
selfLink: /api/v1/namespaces/kube-system/configmaps/kubeadm-config
uid: 0cf52c5b-ff4e-11e8-af11-000c2980069c

这个ConfigMap就是之前kubeadm得config文件。

复制第一个master节点上的相关证书到需要添加为master的192-168-10-14节点上,证书清单如下:

/etc/kubernetes/pki/sa.key
/etc/kubernetes/pki/sa.pub
/etc/kubernetes/pki/ca.crt
/etc/kubernetes/pki/ca.key
/etc/kubernetes/pki/front-proxy-ca.crt
/etc/kubernetes/pki/front-proxy-ca.key
/etc/kubernetes/pki/etcd/ca.crt
/etc/kubernetes/pki/etcd/ca.key
/etc/kubernetes/admin.conf

然后在192-168-10-14上执行join命令,等待命令执行完成。

kubeadm join 192.168.10.21:6443 --token ffppwv.04qrmsdwm6netaaq --discovery-token-ca-cert-hash sha256:0cd1dcabee49dd12aaf7913eab9b0fc0e5bda2be9c35f17ce0c0864c7a5bbdb1 --experimental-control-plane

这个过程可能需要几分钟,期间kubectl会失效,耐心等待一下。

注意: 比添加work节点多了 --experimental-control-plane 参数

在第一个master节点执行 kubectl label nodes192-168-10-14node-role.kubernetes.io/master="" ,标记 192-168-10-14 为master

检查一下节点情况:

[hall@192-168-10-21 ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
192-168-10-14 Ready master 17m v1.13.1
192-168-10-18 Ready <none> 102d v1.13.0
192-168-10-21 Ready master 102d v1.13.0

最后给 192-168-10-14 增加一个污点,标记为业务不可调度

kubectl taint nodes 192-168-10-14 node-role.kubernetes.io/master="":NoSchedule

这样就完成了master节点的添加,可以重复步骤添加第3个master节点。如果是正式服务,要完成高可用,还需用HA代理3个master节点的6443端口。其实现过程主要就是HA的配置,这里就不在详细介绍了。

自此,一个测试用的k8s集群就搭建完成。简单总结一下搭建过程:

  1. 按照官方要求进行环境监测和安装kubeletkubeadmkubectl三个包。
  2. Master上初始化启动k8s集群,将节点加入集群和配置集群flannel网络。
  3. 安装dashboard,可视化管理集群。
  4. 增加master节点,支持高可以。

主要参考文档

kubeadm安装

kubeadm init

Deploy the Kubernetes Web UI (Dashboard)

本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/Z-1OA5PDanl-Rw1jt9y27A

 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:1年以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:1年以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:1年以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:1年以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:1年以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:1年以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:1年以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:1年以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:1年以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:1年以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:1年以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:1年以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:1年以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:1年以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:1年以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:1年以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:1年以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:1年以前  |  398次阅读  |  详细内容 »
 相关文章
Android插件化方案 5年以前  |  237229次阅读
vscode超好用的代码书签插件Bookmarks 2年以前  |  8063次阅读
 目录