智匯華云 | kata container virtiofs測試和技術(shù)分析
云原生技術(shù)已經(jīng)成為加快企業(yè)數(shù)字化轉(zhuǎn)型的一個(gè)不折不扣的風(fēng)向標(biāo)。而以容器為代表的云原生技術(shù)正在成為釋放云價(jià)值的最短路徑。本期智匯華云,帶大家一起了解和體驗(yàn)安全容器kata container的?些特性。
前?
當(dāng)前云原?技術(shù)發(fā)展的如?如荼,容器化技術(shù)以及kubernetes容器化應(yīng)?管理平臺,帶來了全新的? 態(tài)系統(tǒng). 隨著容器技術(shù)的發(fā)展,容器運(yùn)?時(shí)規(guī)范OCI也逐漸脫離Docker被單獨(dú)提了出來,kubernetes?期使?的容器運(yùn)?時(shí)是runC,輕量,性能?,但因?yàn)楣?linux內(nèi)核以及namespace機(jī)制隔離的不徹 底,存在?定的安全問題,業(yè)界涌現(xiàn)了好?個(gè)安全容器的解決?案,?如Google的gVisor, Amazon的 Firecracker,vmware的CRX等, 開源世界???較有名的解決?案是kata container,本?主要就關(guān) 注在安全容器kata container的?些特性了解和體驗(yàn)。 kata Container
kata container 由?系列技術(shù)組成,來源于兩個(gè)項(xiàng)?的合并,Intel Clear Containers和Hyper runV,然 后?加上redhat貢獻(xiàn)的virtio-fs,?種在guest和宿主機(jī)之間共享?件系統(tǒng)的?案。涉及的技術(shù)有 QEMU/KVM,Linux kernel,?件系統(tǒng),容器運(yùn)?時(shí),容器?絡(luò)等,是?項(xiàng)?較復(fù)雜的組合產(chǎn)品,? 且還保持著很?的新特性開發(fā)進(jìn)度,本次主要體驗(yàn)和梳理virtiofs相關(guān)的內(nèi)容,這些內(nèi)容有部分是來源 于kata的社區(qū)郵件列表以及slack,還有微信群,?常感慨,kata的社區(qū)真是?常的Nice,專業(yè)程度和 熱?都令?感動(dòng)。
virtiofs ?件系統(tǒng)結(jié)構(gòu)
默認(rèn)容器是使?cgroup和namespace做進(jìn)程,?絡(luò),?件系統(tǒng)掛載點(diǎn)等隔離,是?常輕量級的。? kata container為了實(shí)現(xiàn)安全容器,使?了VM虛擬機(jī)作為強(qiáng)隔離?段,有獨(dú)?的內(nèi)核和虛擬機(jī)鏡像, 為了降低資源消耗,hypervisor使?了?常?的guest kernel和guest image,?度優(yōu)化了內(nèi)核的啟動(dòng) 時(shí)間,最?化了內(nèi)存占?,只提供容器負(fù)載所需要的最基本的服務(wù)。virtio-fs?件系統(tǒng),在資源消耗上 也使?了多種優(yōu)化特性。 下?就來看?看具體是怎么使?的,以及特性理解 kata container作為除了runC之外另?種runtime,需要先在kubernetes環(huán)境中做集成部署,以便做各 種觀察。當(dāng)然直接使?他的CTR?具也是可以,只是缺少CNI的?持,?絡(luò)??不能?動(dòng)配置。kata container configuration.toml 配置參數(shù)有兩種共享?件系統(tǒng)類型可以選擇,之前默認(rèn)是virtio-9p ,現(xiàn) 在基本上都會選擇 virtio-fs,有若?優(yōu)點(diǎn)。 virtio- 9p 和 virtio-fs ?件系統(tǒng)對?
1. virtio-9p基于現(xiàn)存的?絡(luò)協(xié)議,并沒有虛擬化場景提供優(yōu)化
2. virtio-fs利?了hypervisor和虛擬機(jī)處于相同節(jié)點(diǎn)的優(yōu)勢
DAX特性,?件內(nèi)容能夠映射到宿主機(jī)的內(nèi)存窗?,允許客戶機(jī)直接訪問宿主機(jī)的page cache
減少內(nèi)存占?,因?yàn)榭蛻魴C(jī)cache已經(jīng)被繞過了
不需要?絡(luò)節(jié)點(diǎn)通信,提?了IO性能
測試
kata container 與整合使?virtiofsd,把宿主機(jī)?錄共享給微虛擬機(jī)使?。測試環(huán)境版本: Centos 8
qemu-kvm 5.1
kubernetes 1.18
containerd 1.4.4
kata container 2.0.4
使?kubernetes 新版本的RuntimeClass 對象,指定handler:kata
創(chuàng)建pod
1 apiVersion: v1
2 kind: Pod
3 metadata:
4 name: kata-alpine
5 spec:
6 runtimeClassName: kataclass
7 containers:
8 - name: alpine
9 image: alpine:latest
10 imagePullPolicy: IfNotPresent
11 command:
12 - /bin/sh
13 - "-c"
14 - "sleep 60m"
15 restartPolicy: Always
16 nodeSelector:
17 kubernetes.io/hostname:
k8s05 k8s05節(jié)點(diǎn)宿主機(jī)進(jìn)程查看
1 [root@k8s05 ~]# ps aux|grep kata
2 root 500086 0.0 0.1 1412184 47796 ? Sl Jun18 14:00 /usr/bin/conta
3 root 500117 0.0 0.0 129064 4960 ? Sl Jun18 0:00 /usr/libexec/k
4 root 500155 0.2 3.2 4367516 1059672 ? Sl Jun18 41:47 /usr/bin/qemu-
5 root 500158 0.0 0.8 5667064 271696 ? Sl Jun18 0:03 /usr/libexec/k
可以看到kata container v2 啟動(dòng)了新的與kubernetes對接的CRI進(jìn)程containerd-shim-kata-v2, KVM虛擬機(jī),還有2個(gè)virtiofsd進(jìn)程。為什么會啟動(dòng)2個(gè)virtiofs呢?為了提?安全性,virtiofsd 進(jìn)程 fork??,以便進(jìn)?新的 mount/pid/net 命名空間,只有?進(jìn)程內(nèi)存映射,CPU使???處于活躍狀 態(tài)。
可以看到qemu 虛擬化了設(shè)備vhost-user-fs-pci,有?個(gè)tag為kataShared,這個(gè)就是虛擬機(jī)要 mount的源。tag就是?個(gè)?定義?件系統(tǒng)需要接收的參數(shù),定義路徑?的。
Note that Linux 4.19-based virtio-fs kernels required a different mount syntax. mount -t virtio_fs none /mnt -o tag=myfs,rootmode=040000,user_id=0,group_id=0 instead. mount_tag: A tag which acts as a hint to the guest OS and is used to mount this exported path.
1 -device vhost-user-fs-pci,chardev=char-538bb1c14588b18e,tag=kataShared
進(jìn)?kata容器觀察
1 [root@k8s01 kata-container]# kubectl exec -it kata-alpine -- sh
2 / # df -h
3 Filesystem Size Used Available Use% Mounted on
4 kataShared 74.0G 49.5G 24.4G 67% /
5 tmpfs 64.0M 0 64.0M 0% /dev
6 tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
7 kataShared 74.0G 49.5G 24.4G 67% /etc/hosts
8 kataShared 74.0G 49.5G 24.4G 67% /dev/termination-log
9 kataShared 74.0G 49.5G 24.4G 67% /etc/hostname
10 kataShared 74.0G 49.5G 24.4G 67% /etc/resolv.conf
11 shm 1.4G 0 1.4G 0% /dev/shm
12 kataShared 15.7G 12.0K 15.7G 0% /run/secrets/kubernetes.i
13 tmpfs 64.0M 0 64.0M 0% /proc/keys
14 tmpfs 64.0M 0 64.0M 0% /proc/timer_list
可以看到容器已經(jīng)掛載了tag定義的?件系統(tǒng)。tag名字可以是任意取的,只要能guest掛載時(shí)候指定相同的就可以。對于kata 來說,已經(jīng)整合好了,不需要??指定
有時(shí)候如果處于調(diào)試?的或者是想看?下虛擬機(jī)的信息,可以配置kata 開啟debug 模式,qemu暴露 vsock接?,虛擬機(jī)通過agent開啟shell
1 configuration.toml
2
3 [agent.kata]
4 debug_console_enabled = true
宿主機(jī)再?動(dòng)啟動(dòng)kata-monitor 進(jìn)程,獲取sandbox的vsock地址,??監(jiān)聽localhost:8090端?,就可以通 過kata-runtime exec $sandboxId 接?虛擬機(jī)bash了
1 [root@k8s05 kata]# /usr/bin/kata-monitor
2 INFO[0010] add sandbox to cache container=7e4cef94733381a9d9c509aa2a0be87e0c0bd
3 INFO[0020] delete sandbox from cache container=5246e787b17eeab4ca83e9e73583a1b5
進(jìn)?虛擬機(jī)查看
kata根據(jù)sandbox的ID,指定唯?的宿主機(jī)內(nèi)存共享?錄source, 傳遞給virtiofsd. 虛擬機(jī)掛載 virtiofsd導(dǎo)出的共享的?錄到/run/kata-containers/shared/containers,然后再以bind mount的? 式掛載進(jìn)容器。
1 [root@k8s05 ~]# kata-runtime exec 0965321e164975f01c85f997fbb0183773a9e97cb5767d9
2 bash-4.2# df -h
3 Filesystem Size Used Avail Use% Mounted on
4 rootfs 1.4G 350M 1.1G 25% /
5 dev 1.4G 0 1.4G 0% /dev
6 tmpfs 1.5G 0 1.5G 0% /dev/shm
7 tmpfs 1.5G 16K 1.5G 1% /run
8 tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
9 kataShared 16G 1.6G 15G 11% /run/kata-containers/shared/containers
10 shm 1.5G 0 1.5G 0% /run/kata-containers/sandbox/shm
kata根據(jù)sandbox的ID,指定唯?的宿主機(jī)內(nèi)存共享?錄source, 傳遞給virtiofsd. 虛擬機(jī)掛載 virtiofsd導(dǎo)出的共享的?錄到/run/kata-containers/shared/containers,然后再以bind mount的? 式掛載進(jìn)容器。
持久卷掛載
?絡(luò)持久卷?如iscsi也是能直接掛載進(jìn)kata容器的,例如創(chuàng)建?個(gè)pod,直接指定pvc,pv使?某?個(gè) iscsi lun,然后在容器中創(chuàng)建?個(gè)?件
1 [root@k8s01 kata-container]# kubectl exec -it iscsipd -- sh
2 / # cd /mnt/iscsipd
3 /mnt/iscsipd # ls
4 lost+found
5 /mnt/iscsipd # touch aaaa.txt
在虛擬機(jī)??已經(jīng)通過virtiofs掛載在了?個(gè)容器id?錄之下
1 [root@k8s05 ~]# kata-runtime exec e96d0ce2249e9027f0e1102e66a0c0013473ac48a088240
2 bash-4.2# mount
3 rootfs on / type rootfs (rw,size=1444588k,nr_inodes=361147)
4 kataShared on /run/kata-containers/shared/containers type virtiofs (rw,relatime)
5 kataShared on /run/kata-containers/e96d0ce2249e9027f0e1102e66a0c0013473ac48a08824
6 kataShared on /run/kata-containers/839162f25b7907bf91ecb027305e64dd5ccf36f55b15b6
7 bash-4.2# find / -name aaaa.txt
8 /run/kata-containers/shared/containers/839162f25b7907bf91ecb027305e64dd5ccf36f55b
在宿主機(jī)上是識別為硬盤塊設(shè)備/dev/sdd,被kubelet掛載在特定?錄下?,?個(gè)是sandbox_id,? 個(gè)是應(yīng)?container_id
1 [root@k8s05 ~]# lsblk
2 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
3 sda 8:0 0 50G 0 disk
4 ├─sda1 8:1 0 1G 0 part /boot
5 sdc 8:32 0 2G 0 disk
6 sdd 8:48 0 2G 0 disk /run/kata-containers/shared/sandboxes/e96d0ce2
就如前?說的,所有數(shù)據(jù)都要經(jīng)過virtiofs,不管是鏡像數(shù)據(jù)還是?絡(luò)存儲卷。虛擬機(jī)要和宿主機(jī)數(shù)據(jù) 交互,就必須要穿過qemu,virtiofs就是穿過qemu的橋梁,提供共享?件機(jī)制。數(shù)據(jù)相關(guān)的操作最終 還是在宿主機(jī)上,?如鏡像層的合并,仍然是containerd的存儲層插件snapshotter完成,底層仍然是 調(diào)?了overlayfs?件系統(tǒng)
1 /etc/containerd/config.toml
2 [plugins."io.containerd.grpc.v1.cri".containerd]
3 snapshotter = "overlayfs"
4 default_runtime_name = "runc"
5 no_pivot = false
6 disable_snapshot_annotations = true
7 discard_unpacked_layers = false
8 ...
9 [plugins."io.containerd.service.v1.diff-service"] 10 default = ["walking"]
另外kata container 整合使?virtiofs的?式,與獨(dú)???操作virtiofs的?式,有些地?稍有不同,? 如按virtiofs官?說明,可以指定host?件?錄$TESTDIR作為源
1 ./virtiofsd --socket-path=/tmp/vhostqemu -o source=$TESTDIR -o cache=alwa
?在kata runtime??是不允許的,?如在configuration.toml ?配置
1 virtio_fs_extra_args = ["-o","--thread-pool-size=1","-o","/opt/kata-instance"]
kubelet 會報(bào)錯(cuò):
Warning FailedCreatePodSandBox 1s (x14 over 15s) kubelet, k8s05 Failed to create pod sandbox: rpc error: code = Unknown desc = failed to create containerd task: failed to launch qemu: exit status 1, error messages from qemu log: qemu-system- x86_64: cannot create PID fifile: Cannot open pid fifile: No such fifile or directory
kata還會打開vhost-user socket ?件描述符,傳遞給virtiofsd。可能有?會有疑問,為什么每?個(gè) virtiofsd進(jìn)程的fd參數(shù)都等于3,會不會有沖突。其實(shí)不會,因?yàn)?件描述符是進(jìn)程獨(dú)?的,STDIO占 據(jù)了0,1和2,那么virtiofsd第?個(gè)可?的fd num就是3了
virtiofsd cache guest
guest ?成是會指定內(nèi)存??,virtiofsd會共享使?guest的內(nèi)存。默認(rèn)使?memory-backend-fifile內(nèi)存對象
virtiofsd共享使?VM內(nèi)存,configuration.toml 配置參數(shù)default_memory
qemu 命令?接受的參數(shù)
1 -object memory-backend-file,id=dimm1,size=3072M,mem-path=/dev/shm,share=on -numa
guest和host數(shù)據(jù)傳輸都是通過virtio-fs,包括容器鏡像和容器卷,讀寫權(quán)限取決于virtiofsd進(jìn)程的權(quán)限
DAX(直接訪問)
dax
DAX windows 是?塊虛擬內(nèi)存區(qū)域,通過PCI Bar 把?件映射到guest??,并不真正的占?主機(jī)那 么多內(nèi)存,即使有100個(gè)虛擬機(jī),設(shè)置的DAX cache是1G,也不會真的使?100G內(nèi)存。只是?種page 映射機(jī)制,所以也不需要任何的cache 策略。
要任何的cache 策
kata container官?下載的版本默認(rèn)沒有不?持,需要編譯安裝gitlab托管的virtio-fs qemu項(xiàng)? qemu5.0-virtiofs-dax 分?
configuration.toml 設(shè)置virtio_fs_cache_size dax window ??,qemu初始化vhost-user-fs-pci設(shè) 備
1 -machine q35,accel=kvm,kernel_irqchip,nvdimm
2 -device nvdimm,id=nv0,memdev=mem0 -object memory-backend-file,id=mem0,mem-path=/o
3 -device vhost-user-fs-pci,chardev=char-ea09ec33d071ac42,tag=kataShared,cache-size
如果是rootfs image 可以看到模擬的nvdimm信息,??編譯鏡像的話,image_builder.sh構(gòu)建腳本會 在image?件頭部寫?dax metadata信息。initrd image看不到。image 相當(dāng)于是直接?rootfs引導(dǎo), initramfs(initrd)是把cpio+gz打包壓縮的rootfs解壓到內(nèi)存?,再?內(nèi)存?的initramfs來引導(dǎo)。前 者可以利?dax,讓guest os認(rèn)為這就是個(gè)dimm內(nèi)存,不需要再加載到另?塊內(nèi)存?,后者就是需要 解壓到?塊內(nèi)存。
DAX 背后的想法是避免在guest中使? _second_ 緩沖區(qū)緩存。?般對于常規(guī)?件,guest會維護(hù)?? ?件系統(tǒng)緩沖區(qū)。
現(xiàn)在呢,對于與 virtiofs 共享的?件,由于它們駐留在主機(jī)上,您將在主機(jī)上擁有?份緩存副本,然后 virtiofs 會將其發(fā)送給guest ,然后guest就也有了?份副本,成本就?較?。 DAX 就是為了解決這個(gè)問題的,它所做的就是將主機(jī)buffffer map到客戶機(jī)中,guest使?與主機(jī)相同 的物理內(nèi)存,即使它使?不同的虛擬地址。如果沒有 DAX,內(nèi)存使?量可能會?常?,因?yàn)槊總€(gè) guest都有??的?件緩沖區(qū)。例如,如果您啟動(dòng)?個(gè) Fedora 容器并“dnf install something”,您將 看到內(nèi)存使?量增加了約 300M,因?yàn)樵谠摬僮髌陂g讀取/寫?了許多?件。如果沒有 DAX,那么 guest也需要分配 350M。使? DAX,它就會直接使?宿主機(jī)中已為這些?件緩沖分配的350M內(nèi)存
性能測試
測測DAX window??對性能的影響(virtio_fs_cache_size = 512)
??件測試
1 fio --name=small-file-multi-read --directory=/usr/share/nginx/html \
2 --rw=randread --file_service_type=sequential \
3 --bs=4k --filesize=10M --nrfiles=100 \
4 --runtime=60 --time_based --numjobs=1
5 ...
6 small-file-multi-read: (groupid=0, jobs=1): err= 0: pid=190: Mon Jul 5 07:05:18
7 read: IOPS=12.0k, BW=46.0MiB/s (49.2MB/s)(212MiB/4505msec)
??件測試
1 fio --name=5G-bigfile-rand-read --directory=/usr/share/nginx/html --rw=ra
2 ...
3 5G-bigfile-rand-read: (groupid=0, jobs=1): err= 0: pid=184: Mon Jul 5 06:57:08 2 4 read: IOPS=1255, BW=5024KiB/s (5144kB/s)(294MiB/60002msec)
從壓測觀察到當(dāng)讀寫的?件超過dax window后,性能下降很多,原因和dax映射機(jī)制有關(guān),dax窗?的 回收是?較慢的,當(dāng)活躍數(shù)據(jù)超過dax window ,產(chǎn)?很多的回收?作會導(dǎo)致性能很差。另外dax window的映射單元是按每2MB內(nèi)存??映射的,具體來說就是由512個(gè) struct page (one struct page for each 4K range) 和?個(gè) struct fuse_dax_mapping 。每個(gè)單元映射范圍?約需要消耗32K 額外內(nèi)存。?如1GB of dax window: 512 * 32K = 16MB of memory usage.
同時(shí)還觀察到virtiofsd占?內(nèi)存很?,?如本實(shí)例qemu-system-x86_64 rss 內(nèi)存3.1G,virtiofsd rss 1.6G,?產(chǎn)中對資源的控制需要細(xì)節(jié)控制。
總結(jié)
kata container 還是?項(xiàng)?較復(fù)雜的技術(shù)組合,實(shí)踐?檔較少,有問題要不就是求教于社區(qū),要不就 得翻源碼,源碼牽涉到linux kernel,qemu/kvm,fifilesystem,內(nèi)存映射,容器等多種技術(shù),?且還是? 較新的技術(shù)。但云原?安全?是未來越來越受到重視的領(lǐng)域,極?影響業(yè)務(wù)容器化的決策。希望?業(yè) 能更多的參與到安全容器上來,增加實(shí)踐場景,暢快投?云原?的懷抱。
免責(zé)聲明:市場有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!此文僅供參考,不作買賣依據(jù)。
關(guān)鍵詞:
您可能也感興趣:
今日熱點(diǎn)
為您推薦
8家險(xiǎn)企股權(quán)被掛牌轉(zhuǎn)讓,為何險(xiǎn)企股權(quán)不再被追捧?
深圳最低工資標(biāo)準(zhǔn)調(diào)整為2360元/月 失業(yè)保險(xiǎn)金為2124元/月
遼寧實(shí)施失業(yè)保險(xiǎn)省級統(tǒng)籌 對缺口核定等作出詳細(xì)規(guī)定
更多
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動(dòng)產(chǎn)業(yè)升級
- 重慶:激發(fā)人才創(chuàng)新活力,到2025年創(chuàng)新要素活躍度顯著增強(qiáng)
- 西寧加快知識產(chǎn)權(quán)強(qiáng)市建設(shè)步伐 去年兌現(xiàn)資助資金200萬元
- 無錫錫山區(qū)全面啟動(dòng)實(shí)施“雙招雙引” 引進(jìn)高端創(chuàng)新資源
- 重慶巴南區(qū)落實(shí)創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略 以科技創(chuàng)新引領(lǐng)五大產(chǎn)業(yè)集...
- 朝陽北票經(jīng)開區(qū)加快推進(jìn)數(shù)字經(jīng)濟(jì)發(fā)展 推動(dòng)體制機(jī)制創(chuàng)新
- 湖北省先進(jìn)低碳冶金產(chǎn)業(yè)技術(shù)創(chuàng)新聯(lián)合體組建 打造五千億級產(chǎn)...
- 重慶渝北將優(yōu)化創(chuàng)新生態(tài)環(huán)境 培育打造一批引領(lǐng)型的科創(chuàng)載體
更多
- 深圳不斷提升對外投資水平 “走出去”服務(wù)水平顯著提高
- 去年實(shí)際使用外資達(dá)1.1萬億元 來源地投資穩(wěn)定增長
- 北京“十四五”投資實(shí)現(xiàn)良好開局 高技術(shù)產(chǎn)業(yè)投資亮眼
- 山東抓投資抓項(xiàng)目 新興領(lǐng)域投資規(guī)模持續(xù)擴(kuò)大
- 2021年各地引資成績單亮眼 迸發(fā)出巨大經(jīng)濟(jì)活力
- 多地重大項(xiàng)目投資規(guī)模力度明顯加大 新基建項(xiàng)目成重要發(fā)力點(diǎn)
- 年內(nèi)湖北新開工城建項(xiàng)目160個(gè) 集中在道路交通等方面
- 去年我國對外投資合作平穩(wěn)發(fā)展 境外經(jīng)貿(mào)合作區(qū)建設(shè)成效顯著
排行
- 增速獲客賽道 激活年輕屬性——興業(yè)銀行信用卡“圈粉”90后
- 陸金所會員2.0襲來:多元化升級用戶權(quán)益,為美好生活賦能
- 嗨學(xué)網(wǎng)怎么樣?主流職業(yè)領(lǐng)域課程為核心 業(yè)務(wù)體系在國內(nèi)職教界
- 明星主播唐笑應(yīng)邀參加首屆中國國際消費(fèi)品博覽會簽約儀式 助...
- UFC冠軍張偉麗成為Hyperice(海博艾斯)全球運(yùn)動(dòng)員大使
- 黃河旋風(fēng):超硬材料單晶產(chǎn)品支撐行業(yè)下游產(chǎn)業(yè)發(fā)展
- 重塑IP新場景!鄭州絨言絨語走進(jìn)鄂爾多斯金鼎亨深度探索
- 一家線上美妝店的反向成長之路:話梅的新零售
- 荷蘭佳貝艾特——進(jìn)口羊奶粉市場的風(fēng)向標(biāo),營養(yǎng)新選擇
- 滴滴出行上市,估值高達(dá)千億美金,竟因這個(gè)你沒聽過的業(yè)務(wù)!
最近更新
- 跨鏈支付網(wǎng)絡(luò)cBridge宣布支持Astar Network
- 艾德一站通「每日金股」功能全新升級 開啟“投資陪伴”新風(fēng)向
- 增速獲客賽道 激活年輕屬性——興業(yè)銀行信用卡“圈粉”90后
- 百融云創(chuàng)與某銀行達(dá)成戰(zhàn)略合作 SaaS平臺促進(jìn)數(shù)字化轉(zhuǎn)型
- “高速上違停趕報(bào)表”警示了誰?
- 離職文書的“坑”不能僅由勞動(dòng)者填平
- 脫掉K-9包袱節(jié)流減員,新東方在線駛向新“東方”
- 疫情得到控制,防疫仍不可松勁
- ?青海春天一字跌停,2021年預(yù)虧超2.65億或?qū)⒈粚?shí)施退市風(fēng)險(xiǎn)警示
- 金地集團(tuán)子公司東莞金展房地產(chǎn)因虛假材料取得商品房預(yù)售許可被罰
- 幫助中小企業(yè)紓困解難,工信部明確這些舉措!
- 非學(xué)科類培訓(xùn)班寒假惡意漲價(jià)需綜合施治
- 機(jī)構(gòu):2021年126家房企參與收并購 交易金額同比增長21.3%
- 北京:買四類藥品實(shí)施新政 市場監(jiān)管進(jìn)店查落實(shí)
- 營收凈利雙降,沃華醫(yī)藥用九成利潤給股東“發(fā)紅包”
- 東莞保越實(shí)業(yè)因虛假材料取得商品房預(yù)售許可被罰 其系保利、...
- 北京:保證春節(jié)群眾需求不脫銷、不斷檔
- 天津積分落戶新政:取消年度落戶數(shù)量限制
- 五糧液集團(tuán)實(shí)現(xiàn)營收1400億元
- 瑞爾集團(tuán)再遞表港交所:連續(xù)三年虧損 淡馬錫持股10.88% 43...
- 豐臺今天開展第二輪全員核酸篩查
- 發(fā)改委給高耗能企業(yè)定KPI:冬奧會用的神奇綠電,要引入碳交易
- 比亞迪:2021年94名員工因不廉潔、嚴(yán)重違規(guī)被查處
- 采購進(jìn)口冷鏈?zhǔn)称沸枰龊脗€(gè)人防護(hù)
- 特斯拉反訴摩根大通 :想借馬斯克發(fā)布私有化推特獲利益
- 北京市疫情防控形勢總體可控
- 東莞中海嘉樺房地產(chǎn)因虛假材料取得商品房預(yù)售許可被罰 其系...
- 騰訊2021年近70人觸犯“高壓線”被辭退,13家企業(yè)進(jìn)黑名單
- 東莞海逸豪庭項(xiàng)目存在違規(guī)行為東莞冠亞環(huán)崗湖商住區(qū)建造公司...
- 當(dāng)心!玩雪引發(fā)的婦科危機(jī)
今日要聞
- 跨鏈支付網(wǎng)絡(luò)cBridge宣布支持Astar Network
- 增速獲客賽道 激活年輕屬性——興業(yè)銀行信用卡“圈粉”90后
- 百融云創(chuàng)與某銀行達(dá)成戰(zhàn)略合作 SaaS平臺促進(jìn)數(shù)字化轉(zhuǎn)型
- 脫掉K-9包袱節(jié)流減員,新東方在線駛向新“東方”
- ?青海春天一字跌停,2021年預(yù)虧超2.65億或?qū)⒈粚?shí)施退市風(fēng)險(xiǎn)警示
- 金地集團(tuán)子公司東莞金展房地產(chǎn)因虛假材料取得商品房預(yù)售許可被罰
- 幫助中小企業(yè)紓困解難,工信部明確這些舉措!
- 機(jī)構(gòu):2021年126家房企參與收并購 交易金額同比增長21.3%
- 營收凈利雙降,沃華醫(yī)藥用九成利潤給股東“發(fā)紅包”
- 東莞保越實(shí)業(yè)因虛假材料取得商品房預(yù)售許可被罰 其系保利、卓越合營子公司