主頁 >  其他 > 使用ansible-app2k8s管理和部署服務到 kubernetes

使用ansible-app2k8s管理和部署服務到 kubernetes

2023-06-26 08:40:12 其他

ansible-app2k8s

#1 介紹

  • 使用 ansible 管理和部署服務到 kubernetes
  • 適用于專案容器化,多套 k8s 環境的管理,可結合CICD工具做DevOps
  • 來自于專案實踐,已部署多套 k8s 環境
    • 自建 k8s
    • 阿里云 ACK
    • 騰訊云 TEK
    • 華為云 CCE
    • AWS EKS
    • 微軟云 AKS

#2 主要功能

  • 鏡像構建并推送到鏡像倉庫
  • 環境初始化(創建 namespace、儲存卷、驅動等)
  • 部署監控(prometheus、grafana、loki)
  • 構建與部署服務到 k8s(主要用途)

#3 運行環境

  • 系統 Ubuntu 20
  • ansible 2.7 (高版本可能出現語法兼容性問題)
  • kubenertes(能被kubectl客戶端連接即可)

#4 原理與結構

原理很簡單,使用ansible管理模板,呼叫kubectl執行部署
ansible-templates -> deploy.yml -> kubectl -> kubenertes

執行程序使用tag標記,如-t deploy執行deploy部分
根據執行程序,大致分為以下步驟模塊

  • base-build 基礎鏡像構建(docker build)
  • push 推送公共鏡像到鏡像倉庫(docker pull)
  • init 環境初始化(如創建 namespace)
  • monitor 監控警報(如 prometheus)
  • build 構建服務鏡像(docker build)
  • deploy 部署服務(kubectl apply )
  • ingress 配置域名訪問(7 層代理)

模板目錄 roles/k8s/templates
根據服務類別分為如下子目錄

  • base 基礎鏡像 dockerfile
  • ingress 域名決議配置
  • init 環境初始化 yaml 檔案
  • java jar包構建鏡像和部署模板
  • jetty 使用jetty的服務構建和部署模板
  • monitor 監控警報相關 yaml
  • ms 沒有單獨引數檔案的微服務部署模板
  • nignx 前端靜態使用 nginx 容器的部署模板

針對不同k8s環境如dev、prod,使用各自引數配置如儲存、鏡像倉庫、資源限制等
使用ansible -i 指定inventory路徑并使用對應的組變數
如dev環境的k8s組態檔 group_vars/dev/k8s.yml
服務app-v1的dev環境配置 group_vars/dev/k8s_apps/app-v1.yml
prod環境使用對應配置路徑 group_vars/prod/k8s_apps/app-v1.yml

運行截圖

#5 dev 環境準備與配置

#5.1 快速安裝 k8s
export Ver=1.22.16 #k8s版本
curl -ks http://elvin.vip/ks/k8s/k8s.master.ha.sh |bash

# 參考https://www.cnblogs.com/elvi/p/8976305.html 
#5.2 獲取 ansible-app2k8s
mkdir -p /data/ansible-app2k8s
cd /data/ansible-app2k8s
#gitee 
git clone https://gitee.com/alivv/ansible-app2k8s.git ./

#github 
#git clone https://github.com/alivv/ansible-app2k8s.git ./
#5.3 運行 ansible-app2k8s 容器

為保證運行ansible版本一致,我做了ansible鏡像

#查看shell
cat /data/ansible-app2k8s/files/run.ansible-app2k8s.sh
sudo docker rm -f ansible-app2k8s &>/dev/null 
sudo docker run -dit --net=host \
--name ansible-app2k8s -h app2k8s \
-w /data/ansible-app2k8s \
-v /tmp:/tmp \
-v /etc/hosts:/etc/hosts \
-v ~/.ssh:/root/.ssh \
-v /data/ansible-app2k8s:/data/ansible-app2k8s \
registry.cn-shanghai.aliyuncs.com/elvin/ansible:2.7.18-focal 

sudo docker ps -l
#運行容器 ansible-app2k8s
bash /data/ansible-app2k8s/files/run.ansible-app2k8s.sh

#配置別名
alias app2k8s='docker start ansible-app2k8s ; docker exec -it ansible-app2k8s bash'

#linux
echo "alias app2k8s='docker start ansible-app2k8s  ; docker exec -it ansible-app2k8s bash'" >>~/.bashrc

#macOS
echo "alias app2k8s='sudo docker start ansible-app2k8s  ; sudo docker exec -it ansible-app2k8s bash'" >>~/.zshrc

#進入ansible-app2k8s容器(Ctrl+d退出)
app2k8s

#查看ansbile版本
ansible --version
#5.4 初始化 docker-build 節點

本實體把多個功能部署在 docker-build 單節點
為了安全,實際可根據需求可拆分為多個節點

#5.4.1 更改配置

配置 dev 節點 env/dev/k8s.inv

#配置dev環境節點資訊 env/dev/k8s.inv
cat > env/dev/k8s.inv <<EOF
[dev:children]
k8s-node
docker-build

[docker-build]
build-node1        ansible_ssh_host=192.168.23.45
[k8s-node]
k8s-node1          ansible_ssh_host=192.168.23.30

[k8s:children]
k8s-node
[docker:children]
docker-build
registry
[registry]
build-node1
EOF

#IP地址換自己的,節點需要免密登錄
#節點需要安裝python2
# apt install -y python python2 python-apt
# ln -fs /usr/bin/python2 /usr/bin/python

配置 dev 環境引數 group_vars/dev/k8s.yml

#修改配置IP地址

k8s_version: 1.22.16

kubectl_node: 192.168.23.45
deploy_yml_node: 192.168.23.45

ansible 測驗

ansible -i env/dev all -m ping

#獲取節點變數
ansible -i env/dev all -m setup
#5.4.2 安裝docker-registrynfs-serveryml-node
#安裝docker,docker-py(ansible構建鏡像依賴)
ansible-playbook docker.yml -D -i env/dev -l docker-build -t docker,py,job

#部署docker-registry作為鏡像倉庫
ansible-playbook docker.yml -i env/dev -D -l registry -t registry,registry-auth
#增加鏡像倉庫host決議
ansible-playbook docker.yml -i env/dev -D -t hosts-registry

#yml檔案存放節點
ansible-playbook docker.yml -i env/dev -D -l docker-build -t yml-node

#安裝nfs服務和創建nfs目錄,創建容器存盤卷PVC使用
ansible-playbook nfs.yml -i env/dev -D -l docker-build -t nfs-server

#使用nfs儲存卷,k8s節點需安裝nfs client
ansible-playbook nfs.yml -i env/dev -D -l k8s
#5.4.3 安裝配置 kubectl

拷貝k8s 節點配置 /etc/kubernetes/admin.conf
替換本實體配置 roles/k8s/files/kubeconfig-dev.yml
可手動配置kubeconfig,檔案路徑配置在group_vars/dev/k8s.yml

#安裝配置kubectl命令列
ansible-playbook k8s.yml -i env/dev -D -l build-node1 -t kubectl,kubeconfig

#kubectl測驗命令 kubectl get nodes 
ansible-playbook k8s.yml -i env/dev -D -t kubectl-test
#5.5 ansible-app2k8s 測驗
#查看幫助
ansible-playbook k8s.yml -i env/dev -D -t h

#查看資源串列
ansible-playbook k8s.yml -i env/dev -D -t list

構建鏡像測驗

#查看base基礎鏡像dockerfile串列
ansible-playbook k8s.yml -i env/dev -D -t baselist

#構建鏡像nginx_1.22-alpine-www
ansible-playbook k8s.yml -i env/dev -D -t base-build -e baselist=nginx_1.22-alpine-www

#構建完成后打開鏡像倉庫web查看鏡像
#默認賬戶密碼 admin docker
#添加本地host決議后打開 http://hub.elvin.vip

#6 app2k8s 部署服務到 k8s

#6.1 推送公共鏡像到鏡像倉庫
#查看串列
ansible-playbook k8s.yml -i env/dev -D -t pushlist

#推送所有(有點耗時)
ansible-playbook k8s.yml -i env/dev -D -t push -e pushlist=all
#6.2 k8 環境初始化
#查看yml串列
ansible-playbook k8s.yml -i env/dev -D -t initlist

#執行所有
ansible-playbook k8s.yml -i env/dev -D -t init -e initlist=all
#6.3 部署監控 prometheus、grafana、prometheus-adapter、loki
#警報通知使用釘釘機器人,需要改為自己的機器人tonken
grep notice_dingtalk_token group_vars/dev/k8s_ui.yml

#查看yml串列
ansible-playbook k8s.yml -i env/dev -D -t monitorlist

#執行所有yml
ansible-playbook k8s.yml -i env/dev -D -t monitor

grafana默認用戶密碼 admin grafana
添加loki資料源地址 http://loki:3100
添加prometheus資料庫源地址 http://prometheus:9090
grafana模板 roles/k8s/templates/monitor/grafana-template/

#6.4 部署服務到 k8s
#查看app串列
ansible-playbook k8s.yml -i env/dev -D -t applist

#測驗,構建與部署app-v1
ansible-playbook k8s.yml -i env/dev -D -t build,deploy -e applist=app-v1

#構建與部署全部
ansible-playbook k8s.yml -i env/dev -D -t build,deploy -e applist=all

#6.5 域名決議 ingress
ansible-playbook k8s.yml -i env/dev -D -t ingress

查看ingress配置,瀏覽器打開網址查看如下:

#7 部署驗證與清理

#添加本機hosts決議
ansible-playbook dev.yml -i env/dev -D -t hosts-local

#查看已配置網址串列,瀏覽器打開測驗
ansible-playbook dev.yml -i env/dev -t url

測驗完成后,清理 k8s 的 dev 部署

#洗掉ingress
ansible-playbook k8s.yml -i env/dev -D -t ingress-rm

#洗掉dev環境服務
ansible-playbook k8s.yml -i env/dev -D -t rm -e applist=all

#洗掉監控
ansible-playbook k8s.yml -i env/dev -D -t monitor-rm

#洗掉環境初始化
ansible-playbook k8s.yml -i env/dev -D -t init-rm

#8 功能解說

#8.1 本文常用 ansible 命令

ansible-playbook k8s.yml -i env/dev -D -t rmi,build,deploy -e applist=app-v1

  • ansible-playbook 執行 ansible 劇本命令列
  • k8s.yml 當前目錄劇本檔案名
  • -i 指定 inventory 節點路徑
  • -D 是--diff 簡稱,顯示執行程序中檔案修改變化
  • -t 是--tags 簡稱,執行 tag 標記部分,使用,分隔多個 tag
  • -e 是--extra-vars 簡稱,命令列指定變數,變數優先級最高
  • -C 是--check 簡稱,試運行,用于檢測運行程序
#8.2 儲存卷 PVE

為便于管理與維護,本實體存盤卷PVC使用靜態儲存
使用PVC時掛載路徑添加對應服務子路徑 subPath
使用 cronJob 每天壓縮與清理 PVC 儲存的 log 檔案
儲存實體型別有 NFS、阿里云 NAS、騰訊云 CFS、AWS EFS、Azure Files
路徑 roles/k8s/templates/init 前綴是1.4.pvc的檔案

#8.3 日志方案(java 服務)
  • 使用 log4j2 配置需要量化的 log 儲存到 ElasticSearch
  • 使用 log4j2 配置日志儲存到檔案,容器掛載 PVC
  • 使用 loki 搜集終端日志,UI 界面使用 grafana

log4j2 配置在 configmap roles/k8s/templates/jetty/configmap/

#8.4 墻裂推薦的 k8s 工具軟體 !!!

以下部署 yaml 路徑 roles/k8s/templates/init/

  • 8.4.1 https 證書自動續簽 cert-manager
    官網 https://cert-manager.io
    GitHub https://github.com/cert-manager/cert-manager
    注意事項:

    1. 配置自己的 cert-ssl-issuer.yml
    2. http 認證創建證書,需要域名決議到正確的公網IP
    3. DNS 認證需要配置DNS決議權限,可以查看官網檔案
  • 8.4.2 k8s 面板 KubePi
    Kubernetes 可視化面板,可管多個 k8s 集群,國產開源
    GitHub https://github.com/1Panel-dev/KubePi

  • 8.4.3 k8s面板IDE工具推薦Lens
    官網 https://k8slens.dev

  • 8.4.4 k8s 用戶權限管理 permission-manager
    添加配置用戶權限,生成用戶 kubeconfig 檔案
    GitHub https://github.com/sighupio/permission-manager

#8.5 有狀態服務 StatefulSet
  • 有狀態服務使用 StatefulSet 方式部署,需要掛載 PVC 儲存
  • 因為有狀態服務部署后很少更改,放在 init 分類,前綴有 data 的 yml 檔案
    • 如 redis roles/k8s/templates/init/3.data-redis-standone.yml
  • 測驗環境部署單節點夠用,生產環境推薦使用公有云云原生服務
#8.6 監控警報

監控方案為 prometheus, 主要包含如下模塊:

  • node-exporter 采集節點指標
  • kube-state-metrics 匯聚容器狀態指標
  • metrics-server 匯聚資源度量指標
  • prometheus 收集和儲存指標,并提供查詢介面
  • alertmanager 監控警告路由管理
  • grafana 儀表盤 UI 頁面展示
  • dingtalk 使用釘釘機器人發送警報通知

其它監控相關

  • prometheus-adapter 容器自動擴容需要

  • loki 日志儲存和查詢

  • promtail 采集日志發送給 loki

監控警報規則

prometheus 采集和警報規則都在 prometheus-config.yml 檔案
包含警報規則如下:

  • k8s 節點 CPU、記憶體、磁盤使用率,磁盤剩余容量
  • 容器 Pod 狀態、CPU 和記憶體的限制使用率
  • 其它服務如 JVM、Redis、rabbitmq

grafana 模板

JVM 監控 grafana 視圖:

#8.7 容器鏡像倉庫

docker-registry 單獨部署使用可以查看我博客
https://www.cnblogs.com/elvi/p/13394449.html
服務部署到公有云,推薦直接使用公有云的鏡像儲存服務

  • docker-registry 容器鏡像倉庫
  • docker-registry-ui 鏡像查看 web 界面

#8.8 鏡像構建
  • 鏡像構建 + push 到鏡像倉庫
  • 構建鏡像不包含原始碼編譯,可按需修改 dockerfile 里的下載地址
  • 其它工具如 Jenkins(原始碼編譯) -> 儲存編譯包 -> 鏡像構建 -> 鏡像倉庫

配置里有 3 個鏡像倉庫地址(公有云分內網和外網地址)

  • local_repository_url 構建默認 push 到本地鏡像倉庫
  • push_repository_url 推送到遠程鏡像倉庫地址
  • deploy_repository_url 部署時的鏡像倉庫地址
#8.9 安全

請按需并自行解決安全問題,提示以下注意事項:

  • yaml 儲存節點配置訪問控制
  • 使用 ansible-vault 加密 ansible 密碼檔案
  • 手動配置 kubeconfig, 并限制 k8s-apiserver 訪問
#8.10 其它
  • 由于所有部署步驟,模板均可按需更改,自由度很高
  • k8s 所有配置、部署的操作,均保存 yaml 檔案,便于以后升級、遷移等維護
  • 若已熟悉 ansible,可使用本專案作為管理 k8s 部署服務的參考
  • 做自動化部署還需結合其它工具,比如使用 Jenkins

使用 Jenkins+ansible+釘釘通知,自動化部署通知:

#9 日常使用命令參考

#更改構建引數后,查看dockerfile變化
ansible-playbook k8s.yml -i env/dev -D -t dockerfile -e applist=app-v1 -C

#更改部署引數后查看deployment變化
ansible-playbook k8s.yml -i env/dev -D -t yml -e applist=app-v1 -C

#單獨更改configmap配置后,服務需要重啟生效
ansible-playbook k8s.yml -i env/dev -D -t config,restart -e applist=app-v1

#構建和部署服務,rmi是洗掉構建節點已存在的相同tag鏡像
ansible-playbook k8s.yml -i env/dev -D -t rmi,build,deploy -e applist=app-v1

#部署生產環境,使用upload上傳鏡像到外網鏡像倉庫
ansible-playbook k8s.yml -i env/prod -D -t upload,deploy -e applist=app-v1

#更改prometheus監控警報規則后需要reload生效
ansible-playbook k8s.yml -i dev -D -t monitor-config,monitor-reload

#10 作者

Elvin [email protected]
主要博客 http://blog.elvin.vip

Source
https://gitee.com/alivv/ansible-app2k8s

https://github.com/alivv/ansible-app2k8s

本文來自博客園,作者:blog-elvin-vip,轉載請注明原文鏈接:https://www.cnblogs.com/elvi/p/17502093.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/555940.html

標籤:其他

上一篇:基于k6和python進行自動化性能測驗

下一篇:返回列表

標籤雲
其他(161589) Python(38248) JavaScript(25513) Java(18259) C(15238) 區塊鏈(8272) C#(7972) AI(7469) 爪哇(7425) MySQL(7266) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4606) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2437) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) HtmlCss(1971) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 使用ansible-app2k8s管理和部署服務到 kubernetes

    - 使用 ansible 管理和部署服務到 kubernetes
    - 適用于專案容器化,多套 k8s 環境的管理,可結合`CICD`工具做`DevOps`
    - 來自于專案實踐,已部署多套 k8s 環境 ......

    uj5u.com 2023-06-26 08:40:12 more
  • 基于k6和python進行自動化性能測驗

    摘要:在性能測驗中,達到相應的性能指標對于一個軟體來說十分重要,在本文中,將介紹一種現代化性能測驗工具k6。 本文分享自華為云社區《基于k6和python進行自動化性能測驗》,作者: 風做了云的夢。 當我們開發完成一個應用程式時,往往需要對其進行性能測驗,以幫助我們更好的優化程式以及發現程式中的一些 ......

    uj5u.com 2023-06-26 08:39:58 more
  • 深度Q網路:DQN專案實戰CartPole-v0

    摘要:相比于Q learning,DQN本質上是為了適應更為復雜的環境,并且經過不斷的改良迭代,到了Nature DQN(即Volodymyr Mnih發表的Nature論文)這里才算是基本完善。 本文分享自華為云社區《強化學習從基礎到進階-案例與實踐[4.1]:深度Q網路-DQN專案實戰CartP ......

    uj5u.com 2023-06-26 08:39:50 more
  • Midjouney限時免費體驗

    免費體驗Midjourney:https://www.topgpt.one;常見的繪畫風格:室內設計、兒童插畫、表情包制作相關風格都有介紹如何制作,midjourney的強大,只有在使用的時候才能充分體驗。若您想要獲得Midjourney中英對照辭典,請在公眾號回復“mj辭典”。AI已經滲透到各行各... ......

    uj5u.com 2023-06-26 08:34:21 more
  • Terraform 系列-使用 for-each 對本地 json 進行迭代

    ## 系列文章 * [Terraform 系列文章](https://ewhisper.cn/tags/Terraform/) * [Grafana 系列文章](https://ewhisper.cn/tags/Grafana/) ## 概述 前文 [Grafana 系列 - Grafana Ter ......

    uj5u.com 2023-06-26 08:29:07 more
  • 密碼學概念科普(加密演算法、數字簽名、散列函式、HMAC)

    ## 密碼散列函式 密碼散列函式 (Cryptographic hash function),是一個單向函式,輸入訊息,輸出摘要。主要特點是: - 只能根據訊息計算摘要,很難根據摘要反推訊息 - 改變訊息,摘要一定會跟著改變 - 對于不同的訊息,計算出的摘要幾乎不可能相同 根據散列函式的上述特點,可 ......

    uj5u.com 2023-06-26 08:29:02 more
  • 為醫生打造專屬數字分身!華為云聯合萬木健康打造醫療醫學科普和患

    摘要:如今,醫生出鏡的視頻已經成為喜聞樂見的醫學科普和患者教育手段,但醫生難以抽出時間拍攝、拍攝時間較長、成本較高等制作痛點也日益凸顯。對此,國內首個醫生AI數字人運營服務商——成都萬木健康科技有限公司找到了破局之法。 本文分享自華為云社區《為醫生打造專屬數字分身!華為云聯合萬木健康打造醫療醫學科普 ......

    uj5u.com 2023-06-26 08:28:31 more
  • 深度Q網路:DQN專案實戰CartPole-v0

    摘要:相比于Q learning,DQN本質上是為了適應更為復雜的環境,并且經過不斷的改良迭代,到了Nature DQN(即Volodymyr Mnih發表的Nature論文)這里才算是基本完善。 本文分享自華為云社區《強化學習從基礎到進階-案例與實踐[4.1]:深度Q網路-DQN專案實戰CartP ......

    uj5u.com 2023-06-26 08:28:22 more
  • KubeSphere 社區雙周報 | OpenFunction 發布 v1.1.1 | 2023.6.9-

    KubeSphere 社區雙周報主要整理展示新增的貢獻者名單和證書、新增的講師證書以及兩周內提交過 commit 的貢獻者,并對近期重要的 PR 進行決議,同時還包含了線上/線下活動和布道推廣等一系列社區動態。 本次雙周報涵蓋時間為:2023.6.9-6.22。 ## 貢獻者名單 ![](https ......

    uj5u.com 2023-06-26 08:27:47 more
  • 如何重繪 DNS 快取 (macOS, Linux, Windows)

    如何重繪 DNS 快取 (macOS, Linux, Windows) Unix Linux Windows 如何重繪 DNS 快取 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 請訪問原文鏈接:,查看最新版。原創作品,轉載請保留出處 ......

    uj5u.com 2023-06-26 08:27:01 more