內(nèi)容文稿容器-helm.user guide_第1頁(yè)
內(nèi)容文稿容器-helm.user guide_第2頁(yè)
內(nèi)容文稿容器-helm.user guide_第3頁(yè)
內(nèi)容文稿容器-helm.user guide_第4頁(yè)
內(nèi)容文稿容器-helm.user guide_第5頁(yè)
已閱讀5頁(yè),還剩148頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

前序 用戶 安 KubernetesKubernetes 版安裝 使 插 使用 Helm命令參 庫(kù)庫(kù)同步 測(cè) Repository 開發(fā)chart模介 入 Values文 5.8noteschart附錄1:Yaml附錄2chart最佳實(shí)介 Labels和 Podsand 相關(guān)項(xiàng)目和 KubernetesHelm架KubernetesHelm架 開發(fā)者指 項(xiàng)目 術(shù)語(yǔ)術(shù)語(yǔ) 何處尋找HelmUserGuideHelm用戶指本指南是Kubernetes的庫(kù)下,helm子下的文檔的翻譯,依照的文檔架構(gòu)和組織,當(dāng)前非常粗糙的翻譯了一版(剩余命令參考和術(shù)語(yǔ)表兩部分還沒(méi)有翻譯),后續(xù)會(huì)陸續(xù)更新優(yōu)化,用于給剛接觸Helm這備注:(如果有朋友知道如何更好的在gitbook里面處理花括弧-模板里的值,歡迎告知我/whmz Kubernetes各版安裝使用Helm庫(kù)同步Repository命名模板文件noteschart和全局值1:Yaml技巧附錄2:數(shù)據(jù)類型LabelsAnnotationsKubernetesHelmKubernetesHelm何處尋找Copyright? )2017-2018allright,poweredbyGitbookUpdatedat2018-06-29快速本指南介紹如何快速開始使用Helm前提需要準(zhǔn)備以下前提條件才能成功且安全地使用HelmKubernetes安裝和配置Helm和集群端服務(wù)Tiller安裝Kubernetes或群必須已安裝Kubernetes。對(duì)于Helm的版本,我們推薦的Kubernetes穩(wěn)定版本,在大多數(shù)情況下它是次新 注意:1.6之前的Kubernetes版本對(duì)于基于角色的控制(RBAC),要么有限制,或者不支持HelmKubernetes配置文件(通常是

)Tillerkubectlconfigcurrent-要找出Tiller將安裝到哪個(gè)集群,可以運(yùn) 或kubectlconfigcurrent-$kubectlconfigcurrent-context如果你在完全控制的群集上使用Helm,如minikube或網(wǎng)絡(luò)中的不考慮共享的群集,則默認(rèn)安裝(不采用安全配置)很合適,并且是最容易的。要在無(wú)需額外安全措施的場(chǎng)景下安裝Helm,請(qǐng)參考安裝Helm,然后初始化Helm。 于更大的網(wǎng)絡(luò)中,或者集群與他人共享-生產(chǎn)集群屬于此類別-則必須采取額外步驟來(lái)確保安裝 請(qǐng)參閱Helm安全安裝。如果群集啟用了基于角色的控制(RBAC),在繼續(xù)之前配置服務(wù)帳戶(serviceaccount)和規(guī)則安裝

,或查看發(fā)布頁(yè)面有關(guān)詳細(xì)信息或其他選項(xiàng),請(qǐng)參閱安裝指南初始化Helm并安裝有了Helm安裝文件,就可以初始化本地CLI,并將Tiller安裝到Kubernetes$helmkubectlconfigcurrent-這會(huì)將Tiller安裝到對(duì)應(yīng)的Kubernetes群集中,集群同 提示:想要安kubectlconfigcurrent-Tiller,請(qǐng)運(yùn)行helminitupgrade默認(rèn)情況下,安裝Tiller時(shí),沒(méi)有啟用驗(yàn)證。要了解有關(guān)為Tiller配置增強(qiáng)TLS驗(yàn)證的信息,請(qǐng)參閱TillerTLS指南。安裝示例helm要安裝一個(gè)chart,可以運(yùn) 命令。Helm有幾種方法來(lái)查找和安裝chart,但最簡(jiǎn)單的方法是helm個(gè)穩(wěn)定版本的chart$helmrepo #確保我們獲得的chart$helminstallstable/mysqlReleaseds-penguinNAME:wintering-LASTDEPLOYED:ThuOct1814:21:18STATUS:DEPLOYED==> wintering-rodent-mysql==>wintering-rodent-mysql-testwintering-rodent-mysql0s==>wintering-rodent-mysql==>v1beta1/Deploymentwintering-rodent-mysql0s==> READY RESTARTS Pending MySQLcanbeaccessedviaport3306onthefollowingDNSnamefromwithinyourcluster:TogetyourrootpasswordMYSQL_ROOT_PASSWORD=$(kubectlgetsecret--namespacedefaultwintering-rodent-mysql-ojsonpath="{.data.mysql-root-password}"|base64--decode;echo)ToconnecttoyourRunanUbuntupodthatyoucanuseasakubectlrun-i--ttyubuntu--image=ubuntu:16.04--restart=Never--bash-Installthemysql$apt-getupdate&&apt-getinstallmysql-client-Connectusingthemysqlcli,thenprovideyour$mysql-hwintering-rodent-mysql-ToconnecttoyourdatabasedirectlyfromoutsidetheK8scluster:#Executethefollowingcommandtoroutethemysql-h${MYSQL_HOST}-P${MYSQL_PORT}-uroot-helm在上面的例子中,stable/mysqlreleasewintering-rodent。通過(guò)運(yùn)行可以簡(jiǎn)單了解這個(gè)helmchartreleasechart可以多次安裝到同一個(gè)群集中。而且每個(gè)都可以獨(dú)立helm命令功能非常豐富,具有很多強(qiáng)大功能。要了解信息,請(qǐng)查看使用Helm指helm了解安裝的很容易通過(guò)如下命令查看已使用Helm安裝的$helmAPP+wintering-1ThuOct1815:06:58mysql-卸載安裝的helmhelm

$helmdeletewintering-rodentwintering-releaseKubernetesreleasewintering-$helmstatuswintering-LASTDEPLOYED:ThuOct1814:21:18STATUS:DELETEDMySQLcanbeaccessedviaport3306onthefollowingDNSnamefromwithinyourcluster:TogetyourrootpasswordMYSQL_ROOT_PASSWORD=$(kubectlgetsecret--namespacedefaultwintering-rodent-mysql-ojsonpath="{.data.mysql-root-password}"|base64--decode;echo)ToconnecttoyourRunanUbuntupodthatyoucanuseasakubectlrun-i--ttyubuntu--image=ubuntu:16.04--restart=Never--bash-Installthemysql$apt-getupdate&&apt-getinstallmysql-client-Connectusingthemysqlcli,thenprovideyour$mysql-hwintering-rodent-mysql-ToconnecttoyourdatabasedirectlyfromoutsidetheK8scluster:#Executethefollowingcommandtoroutethemysql-h${MYSQL_HOST}-P${MYSQL_PORT}-uroot-由于Helm在刪除它們之后也會(huì)該release,因此可以審核群集的歷史記錄,甚至可以取消刪除動(dòng)作(使)-閱讀幫助文-helm要了解有關(guān)Helm命令的信息,請(qǐng)使helm

標(biāo)志令$helmget-Copyright? )2017-2018allright,poweredbyGitbookUpdatedat2018-11-23安Helm有兩個(gè)部分:Helm客戶端(helm)Helm服務(wù)端(Tiller)。本指南介紹如何安裝客戶端,然后繼續(xù)演示兩種安Tiller。有關(guān)指導(dǎo),請(qǐng)參閱安全Helm安裝。安裝Helm客戶Helm每一個(gè)版本releaseHelm提供多種操作系統(tǒng)的二進(jìn)制版本。這些二進(jìn)制版本可以手動(dòng)和安裝解壓縮(tar-zxvfhelm-v2.0.0-linux-amd64.tgzmvlinux- mvlinux-)helmhelmSnapSnappackage站點(diǎn)$sudosnapinstallhelm--通過(guò)Kubernetes社區(qū)的成員為Homebrew貢獻(xiàn)了Helm。這個(gè)通常是的(注意:emacs-helm也是一個(gè)軟件,這是一個(gè)不同的項(xiàng)目。從Kubernetes社區(qū)的成員為Chocolatey貢獻(xiàn)了Helm包。這個(gè)軟件包通常是的從Helm現(xiàn)在有一個(gè)安裝 ,將自動(dòng)獲取版本的Helm客戶端并在本地安裝$curl $od700$curl 從金絲雀(Canary)構(gòu)“Canary”版本是從的主分支構(gòu)建的Helm軟件的版本。它們不是正式版本,可能不穩(wěn)定。但是,他們提供了測(cè)試最"Canary"版本Helm二進(jìn)制文件在KubernetesHelmGCS中。以下是常見(jiàn)構(gòu)建的LinuxAMD64ExperimentalWindows源代碼方式從源代碼構(gòu)建Helm的工作稍微多一些,但如果你想測(cè)試的(預(yù)發(fā)布)Helm版本,那么這是最好的方法。你必須有一個(gè)安裝Go工作環(huán)境。$cd$mkdir-p$cd$git $cd$makebootstrap 目標(biāo)將嘗試安裝依賴,重建vendor/樹,并驗(yàn)證配置

。Tiller也會(huì)編譯,并且被放置 安裝Helm的服務(wù)器端部分Tiller通常運(yùn)行在KubernetesKubernetesSpecialNoteforRBAC大多數(shù)云提供商都支持名為基于角色的控制(簡(jiǎn)稱RBAC)的特性。如果您的云提供商啟用了該特性,您將需要為Tiller創(chuàng)建一個(gè)具有資源的正確角色和權(quán)限的服務(wù)帳戶(serviceaccount)。查看KubernetesDistributionGuide在云提供商中使用Helm是否還有其他點(diǎn).也可以查看TillerandRole-BasedAccessControl來(lái)獲取關(guān)于如何在RBAC的K8S集群中使用Tiller的信息。安

helmhelm

kube-kube-

默認(rèn)連接的任何集群(kubectlconfigview)。一旦連接,它將安 kubectlgetkubectlgetpods--namespacekube-helm

Tillerhelm helm--canarycanarykubetillerkubetillertiller-用一個(gè)特定名空間(namespace)安--tillerservice-ServiceAccountRBACenabled--serviceautomount-service-accountserviceaccount--automount-service-accounthelm一旦安裝了Tiller,運(yùn) 會(huì)顯示客戶端和服務(wù)器版本。(如果它僅顯示客戶端版本,helm則無(wú)helmkube-服務(wù)器,使 查看是否有任何tillerPod正在運(yùn)行。kubetillertiller-

參數(shù),否則Helm將在命名空

Tiller安裝TillerCanary鏡像是從master分支建立的。他們可能不穩(wěn)定,但他們提供測(cè)試功能的機(jī)會(huì)。安裝Canary鏡像最簡(jiǎn)單的方法是helminit與--canary-image參數(shù)一起使用:$helminit--canary-kube- 刪kube-本地運(yùn)行

Tillerdeployment對(duì)于開發(fā)而言,有時(shí)在本地運(yùn)行Tiller更容易,將其配置為連接到Kubernetes群集。上面介紹了構(gòu)建部署Tiller的過(guò)程。一旦tiller$TillerrunningonTiller在本地運(yùn)行時(shí),它將嘗試連接到由

Kubernetes群集。(kubectlconfigview--helmTiller--

$export$helmversion#ShouldconnecttoClient:&version.Version{SemVer:"v2.0.0-alpha.4", Server:&version.Version{SemVer:"v2.0.0-alpha.4", mit:"a5...",GitTreeState:"dirty"}注意,即使在本地運(yùn)行,Tiller也會(huì)將安裝的release配置在Kubernetes內(nèi)的ConfigMaps中升級(jí)helminit--從Helm2.2.0開始,Tillerhelminit--對(duì)于舊版本的Helm或手動(dòng)升級(jí),可以使 修改Tiller容器鏡像 #Orwhateverversionyou$kubectl--namespace=kube-systemsetimagedeployments/tiller-deploytiller=gcr.io/kubernetes-helm/tiller:$TILdeployment"tiller-deploy"image設(shè) 將獲得master版本的快照刪除或重新安裝由于Tiller將其數(shù)據(jù)在KubernetesConfigMaps中,因此可以安全地刪除并重新安裝Tiller,而無(wú)需擔(dān)心丟失任何kubectldeletedeploymentkubectldeletedeploymenttiller-deploy--namespacekube-helmhelm然后可以從客戶端重新安裝$helm高級(jí)helminit提供了額外的參數(shù),用于在安裝之前修改Tillerdeploymentmanifest

--node---node-參數(shù)允許我們指定調(diào)度TillerPod所需的節(jié)點(diǎn)。下面的例子將在nodeSelector屬性下創(chuàng)建指定的。--node-helminit--node-selectors已安裝的deploymentmanifest將包含我們的節(jié)點(diǎn)選擇器使用允許指定Tiller的deploymentmanifest的屬性。與在Helm其他地 使用令不同,helmmanifest的指定屬性("values"文件)deploymentmanifest中的任何有效屬性在下面的示例中,我們使用--override添加修訂版本屬性并將其值設(shè)置為1helminit--overridekind:Deploymentdeployment.kubernetes.io/revision:-- -- "spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[0].weight"="1"-- 指定的屬性組合到“preferredDuringSchedulingIgnoredDuringExecution”-operator:""weight:使用TillerdeploymentmanifestJSONYAMLdeployment--stdout

helminit--outputjsonhelminit--outputTiller安裝被跳過(guò),manifest以JSON格式輸出到stdout"kind":"Deployment","labels":{"app":"name":"name":"tiller-deploy",默認(rèn)情況下,tiller將安裝release信息 在其運(yùn)行的名稱空間中的ConfigMaps中。從Helm2.7.0開始,現(xiàn)在有一個(gè)Secrets用于安裝release信息的beta 后端。添加了這個(gè)功能是為和Kubernetes的加密Secret一起,保護(hù)chart的要啟用secrets后端,需要使用以下選項(xiàng)啟動(dòng)helminit--override'spec.template.spec.containers[0].command'='{/tiller,--secretsbeta版本畢業(yè)時(shí),將會(huì)總helmhelm二進(jìn)制代碼和想要用helm

一旦成功安裝了HelmClient和Tiller,可以繼續(xù)下一步使用Helm來(lái)管理chartsCopyright? )2017-2018allright,poweredbyGitbookUpdatedat2018-11-24Kubernetes各版本指本文檔描述有關(guān)在各Kubernetes版本環(huán)境中使用Helm的信息我們嘗試為此文檔添加詳細(xì)信息。如果可以,請(qǐng)通過(guò)PullRequests提供Helm已經(jīng)過(guò)測(cè)試并且已知可以與minikubescripts/local-cluster和通過(guò)配置Hyperkubescripts/local-cluster.sh已知可以工作。對(duì)于原始的Hyperkube已知的GKE托管Kubernetes平臺(tái)默認(rèn)啟用RBAC.因此需要為tiller創(chuàng)建一個(gè)服務(wù)帳戶(serviceaccount),并在初始化helm服務(wù)端時(shí)使用--service-account參數(shù)。查看Tiller和RBAC獲取更詳細(xì)的信息.Ubuntu與kubeadm構(gòu)建的Kubernetes已知可用于以下Linux版UbuntuFedora發(fā)布exportHelm(v2.0.0-beta2exportCoreOS提供的Container

Helm要求kubelet可以socat程序的副本,以與TillerAPI的連接。在ContainerLinux上,Kubelet在具有的hyperkube容器映像中運(yùn)行。因此,盡管ContainerLinux沒(méi)有socat,運(yùn)行kubelet的容器文件系統(tǒng)具有socat。要了解信息,請(qǐng)閱讀KubeletWrapper文檔。HelmOpenShiftOnline,OpenShiftDedicated,OpenShiftContainerPlatform(3.6)OpenShiftOrigin(版本>=3.6)中直接使用。要了解,請(qǐng)閱讀此博客文章。HelmClient和HelmServer(Tiller)預(yù)裝在Platform9ManagedKubernetes。Platform9通過(guò)App UI和本地KubernetesCLI提供對(duì)所有Helmcharts的。其他repo庫(kù)可以手動(dòng)添加。有關(guān)詳細(xì)信息,請(qǐng)參閱Platform9AppCatalog文章。DC/Helm(客戶端和服務(wù)器)已經(jīng)過(guò)測(cè)試,在MesospheresDC/OS1.11Kubernetes平臺(tái)工作正常,無(wú)需其他配置。Copyright?Mingo( )2017-2018allright,poweredbyGitbookUpdatedat2018-11-2322:31:49安裝本節(jié)安裝或開始使用Helm時(shí)遇到的一些經(jīng)常遇到的問(wèn)題issue或向我們發(fā)送PR問(wèn):我無(wú)法獲得Helm的發(fā)布。他們?cè)谀拇穑何覀儾辉偈褂冒l(fā)布版本。二進(jìn)制文件現(xiàn)在在GCS公共區(qū)中GCSpublicbucket。問(wèn):為什么沒(méi)有Debian/Fedora/...Helm的原生的軟件包?我們很樂(lè)意提供這些信息,或者指向可靠的提供商。如果你對(duì)幫助感,我們很樂(lè)意。這就是Homebrew式的開始。問(wèn):你為什么要提供一個(gè)curl...|bash?curl答:我們的repo庫(kù)(scripts/get)中有一 執(zhí)行。這些傳輸全部受HTTPS保護(hù)curl 具有任何s的所有常見(jiàn)我們提供它是因?yàn)樗苡杏?,但我們建議用戶先仔細(xì)閱讀。并且,我們真正喜歡的是Helm的的打包版本安我正在嘗試安裝Helm/TillerHelm客戶端文件放在~/.helmhelm設(shè) helmhelminit--client-onlyhelmrepo注意,如果你有現(xiàn)有的repo庫(kù),則需要通 .重helmrepoHelm答:默認(rèn)情況下,helminit將確認(rèn)本地$HELM_HOME配置,然后在群集上安裝Tiller。要本地配置,但不安裝Tiller,請(qǐng)使用helminit--client-only。helminithelminit--dry-run--答:TillerKubernetesdeploymentkubectldeployment

manifest,然后通過(guò)Tiller期間報(bào)錯(cuò)誤Errorresponsefromdaemon:targetisDocker1.13.0KubernetesTillerDocker中的一個(gè)錯(cuò)誤,它使得一個(gè)版本與早期版本的Docker推送到Docker表的鏡像不兼容。該問(wèn)題在發(fā)布后不久就已修復(fù),并在Docker1.13.1-RC1入Helm/Tiller,但我使用時(shí)碰到問(wèn)題。問(wèn):使用Helm時(shí),收到錯(cuò)誤“客戶端傳輸中斷”E101402:26:32.885226 16143portforward.go:329]anerroroccurredforwarding37008->44134:errorforwardingport44134topodtiller-deploy- -e4lev_kube-system,uid:unabletodoportforwarding:socatnotfo2016/10/1402:26:32transport:http2Client.notifyErrorgotnotifiedthattheclienttransportwasbrokenError:transportis答:這通常表明Kubernetes通常情況下,缺少的部分是socat。如果正在運(yùn)行CoreOS,我們知它可能在安裝時(shí)配置錯(cuò)誤。CoreOS團(tuán)隊(duì)建議閱讀QHelm時(shí),報(bào)錯(cuò)誤"lookupXXXXXon:53:nosuchError:Errorforwardingports:errorupgradingconnection:dialtcp:lookupkube-4gb-lon1-02on:53:nosuchhostUbuntuKubeadmDNSDNS獲添加條目到etc/hosts,將主機(jī)名映射到其publicdnsmasq(例如aptinstallydnsmasq刪除k8sapi服務(wù)容器(kubelet會(huì)重新創(chuàng)建它

(或重新啟動(dòng)節(jié)點(diǎn))請(qǐng)/etc/resolv.conf更改請(qǐng)參閱此問(wèn)題以獲取systemctlsystemctlrestart問(wèn):在GKE(ContainerEngine)上,報(bào)錯(cuò)"NoSSHtunnelscurrentlyError:Errorforwardingports:errorupgradingconnection:NoSSHtunnelscurrentlyopen.Werethetargetsabletoacceptanssh-keyforuser"gke-[redacted]"?Unabletoconnecttotheserver:x509:signedbyunknown答:這個(gè)問(wèn)題是你的本地Kubernetes在GKE上創(chuàng)建集群時(shí),它將提供憑證,包括SSL 頒發(fā)機(jī)構(gòu)信息。這些需要在一個(gè)Kubernetes配置文

可 問(wèn):當(dāng)我運(yùn)行Helm命令時(shí),出現(xiàn)有關(guān)隧道tunnel或proxy的錯(cuò)kubectl答:Helm使用Kubernetes服務(wù)連接到Tiller服務(wù)器。如果命 不適用,Helm也不行。通常,錯(cuò)kubectl問(wèn):Tiller

當(dāng)我在Helm上運(yùn)行命令時(shí),Tiller時(shí)會(huì)出現(xiàn)如下錯(cuò)誤Tillerislisteningon:44134Probesserverislisteningon:44135StoragedriverisConfigMapCannotinitializeKubernetesconnection:theserverhasaskedfortheclienttoprovidecredentials2016-12-2015:18:40.545739I|storage.go:37:Gettingrelease"bailing-chinchilla"(v1)fromstoragepanic:runtimeerror:invalidmemoryaddressornilpointerdereference[signalSIGSEGV:segmentationviolationcode=0x1addr=0x0goroutine77/usr/local/go/src/runtime/panic.go:500+0x1a1k8s.io/helm/vendor/k8s.io/kubernetes/pkg/client/unversioned.(*ConfigMaps).Get(0xc4200c6200,0xc ,0x15,0x1ca7431,0x6,:58k8s.io/helm/pkg/storage/driver.(*ConfigMaps).Get(0xc4201d6190,0xc ,0x15,0xc /home/ubuntu/.go_workspace/src/k8s.io/helm/pkg/storage/driver/cfgmaps.go:69+0x62k8s.io/helm/pkg/storage.(*Storage).Get(0xc4201d61a0,0xc c0,0x12,0xc ,0x12,0x0,0xc /home/ubuntu/.go_workspace/src/k8s.io/helm/pkg/storage/storage.go:38+0x160k8s.io/helm/pkg/tiller.(*ReleaseServer).uniqName(0xc42002a000,0x0,0x0,0xc42016b800,0xd66a13,0xc42055a040, ,0xc /home/ubuntu/.go_workspace/src/k8s.io/helm/pkg/tiller/release_server.go:577+0xd7/home/ubuntu/.go_workspace/src/k8s.io/helm/pkg/tiller/release_server.go:630+0x71,0x0,0x31a9,/home/ubuntu/.go_workspace/src/k8s.io/helm/pkg/tiller/release_server.go:604+0x78068,0xc420250c00,0xc42027c190,0x0,0x0,0x0,0x0,0x0)/home/ubuntu/.go_workspace/src/k8s.io/helm/pkg/proto/hapi/services/tiller.pb.go:747+0x27d ./grpc.(*Server).processUnaryRPC(0xc4202f3ea0,0x28610a0,0xc , ,0x288cbe8,0xc420250bd0,0x0, ./grpc/server.go:608+0xc50 ./grpc.(*Server).handleStream(0xc4202f3ea0,0x28610a0,0xc 64690,0xc420250bd0) ./grpc/server.go:766+0x6b0 , createdbyk8s.io/helm/vendor/ 答:請(qǐng)檢查KubernetesTiller中的幾乎總是由于未能與KubernetesAPI服務(wù)器進(jìn)行協(xié)商而導(dǎo)致的結(jié)果(此時(shí),Tiller功能不正常,因此通常,這是認(rèn)證失敗的結(jié)果,因?yàn)檫\(yùn)行Tiller的Pod沒(méi)有正確的令牌tokenKubernetes--service-account-private-key-filecontroller-manager--service-account-key-file從API服務(wù)器指向同一個(gè)X509RSA密鑰。升我的Helm問(wèn):升級(jí)后,我收到錯(cuò)誤“Clientversion Tiller和Helm必須協(xié)商一個(gè)通用版本,以確保他們可以安全地進(jìn)行通信而不會(huì)API假設(shè)。該錯(cuò)誤意味著版本差異太大而無(wú)法安全地繼續(xù)。通常,需要為此手動(dòng)升級(jí)Tiller。InstallationGuideHelmTiller的詳細(xì)信息。預(yù)發(fā)布版本與其他一切不兼容。Alpha.1與Alpha.2。修補(bǔ)程序版本兼容:1.2.3與1.2.4兼容少量修訂不兼容:1.2.01.3.0不兼容,但我們可能在未來(lái)放寬這一限制。主要版本不兼容:1.0.0與2.0.0不兼容。卸問(wèn):當(dāng)我刪除Tillerdeployment時(shí),為何所有安裝的release安裝release信息在kube-system名稱空間內(nèi)的ConfigMaps中。需要手動(dòng)刪除它們以刪除記錄或使用helmdelete--問(wèn):刪除我的本地Helm。它的所有文件在哪里Copyright? )2017-2018allright,poweredbyGitbookUpdatedat2018-11-23使本指南講述使用Helm(和Tiller)來(lái)管理Kubernetes群集上的軟件包的基礎(chǔ)知識(shí)。前提是假定你已經(jīng)安裝了Helm客戶端和Tiller服務(wù)端(通常通過(guò)helminit)。如果只是想運(yùn)行一些簡(jiǎn)單命令,可以從快速入門指南開始。本章將介紹Helm三大一個(gè)Chart是一個(gè)Helm包。它包含在Kubernetes集群內(nèi)部運(yùn)行應(yīng)用程序,工具或服務(wù)所需的所有資源定義。把它想像為一個(gè)軟件,一個(gè)Aptdpkg或一個(gè)YumRPM文件的Kubernetes環(huán)境里面的等價(jià)物。RepositoryChartsPerlCPANarchiveFedorarepoFedoraPackage一個(gè)Release是處于Kubernetes集群中運(yùn)行的Chart的一個(gè)實(shí)例。一個(gè)chart通??梢远啻伟惭b到同一個(gè)群集中。每次安裝時(shí),都會(huì)創(chuàng)建一個(gè)新release。比如像一個(gè)MySQLchart。如果希望在群集中運(yùn)行兩個(gè)數(shù)據(jù)庫(kù),則可以安裝該chart兩次。每個(gè)都有自己的release,每個(gè)release都有自己的releasename。有了這些概念,我們現(xiàn)在可以這樣解釋Helm將charts安裝到Kubernetes中,每個(gè)安裝創(chuàng)建一個(gè)新release。要找到新的chart,可以搜索Helmcharts'helmsearch':查找helm首次安裝Helm時(shí),它已預(yù)配置為使用Kuberneteschart庫(kù)repo。該repo包含許多精心設(shè)計(jì)和的charts。此chartsrepo默認(rèn)以stable命名。helm

charts$helm Oneofthemostversatileopensourcecontentm... AJenkinsHelmchartforKubernetes. ChartforMariaDB Chartfor如果沒(méi)有使用過(guò)濾條件,helmsearch顯示所有可用的charts$helmsearch ChartforChartfor

MySQL

helmhelminspect$helminspectFetchedstable/mariadbtomariadb-0.5.1.tgzdescription:ChartforMariaDBengine:home::helm helm'helminstall':安裝一個(gè)軟helmhelm

命令。最簡(jiǎn)單的方法,它只需要一個(gè)參數(shù):chart$helminstallNAME:happy-pandaLASTDEPLOYED:WedSep2812:32:28STATUS:DEPLOYED==> UP-TO- happy-panda- ==> happy-panda- ==> CLUSTER- EXTERNAL- happy-panda- MariaDBcanbeaccessedviaport3306onthefollowingDNSnamefromwithinyourcluster:Toconnecttoyourdatabaserunthefollowingkubectlrunhappy-panda-mariadb-client--rm--tty-i--imagebitnami/mariadb mand--mysql-hhappy-panhappy-現(xiàn)在mariadbchart已安裝,請(qǐng)注意,安裝chart會(huì)創(chuàng)建一個(gè)新release對(duì)象。上面的release被命名 happy-(release名稱,只需使用--namehelminstall。在安裝過(guò)程中,helm客戶端將打印有關(guān)創(chuàng)建哪些資源的有用信息,release的狀態(tài)以及是否可以或應(yīng)該采取其他的配置Helmcharts600MDocker鏡像,因此可能需要很長(zhǎng)時(shí)間才helm要release狀態(tài)或重新配置信息,可以使 helm$helmstatushappy-LastDeployed:WedSep2812:32:282016Namespace:default==> CLUSTER- EXTERNAL- happy-panda- ==> UP-TO- happy-panda- ==> happy-panda- MariaDBcanbeaccessedviaport3306onthefollowingDNSnamefromwithinyourcluster:Toconnecttoyourdatabaserunthefollowingkubectlrunhappy-panda-mariadb-client--rm--tty-i--imagebitnami/mariadb mand--mysql-hhappy-pan以上顯示了集群內(nèi)release在安裝前自定義chartcharthelminspect要查看chart上可配置的選項(xiàng),helminspecthelminspectvaluesFetchedstable/mariadb-0.3.0.tgzto/Users/mattbutcher/Code/Go/src/k8s.io/helm/mariadb-##BitnamiMariaDBimage##ref:http ##Default:##Specifya##Defaultto'Always'ifimageTagis'latest',elsesetto'IfNotPresent'##ref:###Specifypasswordforroot##ref: ###Createadatabase##ref: ####Createa##ref: #然后,可以在YAML$echo'{mariadbUser:user0,mariadbDatabase:user0db}'>$helminstall-fconfig.yamlMariaDB的默認(rèn)用戶個(gè)chart的默認(rèn)值。

數(shù)據(jù)庫(kù)的權(quán)限,其他使用--values(或-f):指定一個(gè)overrides的YAML--setsetset(也包 )::在命令行上指定overrides--setset-

helmgethelmgetvalues<release

中。set可以通過(guò)使用特定的版本查看已經(jīng)存在的值行helmupgrade帶有--reset-values參數(shù)重置。

--set--name/value對(duì)。最簡(jiǎn)單的用法:--setname=value。YAML--name:多個(gè)值由,字符分隔。因此--seta=b,c=da:c:支持更復(fù)雜的表達(dá)式。例如,--setouter.inner=valueinner:{和}中包含值來(lái)表示。例如,--setname={a,b,c}abc從Helm2.5.0開始,可以使用數(shù)組索引語(yǔ)法列表項(xiàng)。例如,--setservers[0].port=80變成port:可以通過(guò)這種方式設(shè)置多個(gè)值。該行--setservers[0].port=80,servers[0].host=exampleport:80host:

--setname:--setchart

函數(shù)解析注釋,和節(jié)點(diǎn)選擇器時(shí)派上用場(chǎng)。

表達(dá)。鼓勵(lì)chart設(shè)計(jì)師在設(shè)計(jì)values.yaml

--setset-stringfoo--setset-stringfoo=--

將指定的某些值轉(zhuǎn)換為整數(shù)。例如,--setfootrueHelm

int64?

set-filekey= 的另一種變體。它文件并將其內(nèi)容用作值。set-filekey=本注入值而不處理YAML中的縮進(jìn)。假設(shè)您要?jiǎng)?chuàng)建一個(gè)brigade項(xiàng)目,其中包含包含5行JavaScript const{events,Job}=require("brigadier")functionrun(e,project){}defaultScript=-set-YAMLIDEdefaultScript=-set-const{events,Job}=require("brigadier")functionrun(e,project){}helminstall命令可以從多個(gè)來(lái)源安裝:chartrepository像上面看到的chart(helminstallfoo-0.1.1.tgz一個(gè)解壓后的 (helminstallpath/to/foo一個(gè)完整URL(helminstall /charts/foo-1.2.3.tgz'helmupgrade'and'helmrollback':升級(jí)版本和失敗時(shí)helmchartreleasehelm

releaseKuberneteschartHelm會(huì)嘗試執(zhí)$helmupgrade-fpanda.yamlhappy-pandahappy-pandahasbeenupgraded.HappyHelming!LastDeployed:WedSep2812:47:542016Namespace:defaultStatus:在上面的例子中,happy-pandarelease使用相同的chart進(jìn)行升級(jí),但使用新的YAMLhelmget helmget$helmgetvalueshappy-pandamariadbUser:user1helmgetreleasepanda.yaml已被部署helmhelmrollback?$helmrollbackhappy-pandahelmhistory“happy-panda”releasehelmhistory11

安裝/升級(jí)/回滾的有用選Helmcli參數(shù)的完整列表。要查看所有參數(shù)的說(shuō)明,請(qǐng)運(yùn)行helm--help。--Kubernetes命令完成的超時(shí)時(shí)間值(秒),300(5分鐘Pod都處于就緒狀態(tài),PVCrelease標(biāo)記為成功之前,Deployments有最小maxUnavailable)Pod處于就緒狀態(tài),并且服務(wù)具有IP地址(如果 ,則為Ingress)。它會(huì)等的值。如果達(dá)到超時(shí),releaseFAILEDreplicas1maxUnavailable0,作為滾動(dòng)更新策略的一部分的情況下,

--nonorecreate-(upgraderollback):pod(deploymentpod--recreate-'helmdelete':刪除helmreleasehelm

$helmdeletehappy-這將從集群中刪除該release。可以使用以下helmlist命令查看當(dāng)前部署的所有$helminky-1WedSep2812:59:46alpine-從上面的輸出中,我們可以看到該happy-pandareleasehelmlist--helmlist--list--顯示了所有l(wèi)ist--

??helmlist--happy-WedSep2812:47:54mariadb-inky-1WedSep2812:59:46alpine-kindred-2TueSep2716:16:10alpineHelmreleaserelease名稱。(release--

release并替換其資源。請(qǐng)注意,因?yàn)閞elease'helmrepo':使用到目前為止,只從stable庫(kù)repo安裝chart。但是可以配置helm使用其他repo。Helm在該helmrepo命令下提供了多個(gè)repo工具。helmrepolist以下命令查看配置了哪些$helmrepo helmrepohelmrepo

$helmrepoadddev /dev-helmrepo由于chartrepo經(jīng)常更改,因此可以隨時(shí)通過(guò)運(yùn) 確保Helm客戶端處于helmrepo創(chuàng)建你自己的chartChartDevelopmentGuidechartshelmcreate命令快速入$helmcreatedeis-workflowCreatingdeis-workflowhelmchart./deis-workflowhelmchart

當(dāng)將chart打包分發(fā)時(shí),可以運(yùn)行以下helmpackage$helmpackagedeis-workflowhelmhelm

$helminstall./deis-workflow-可以將已歸檔的chart加載到chartrepo中。請(qǐng)參閱chartrepo注意:stablerepo在HelmCharts 庫(kù)HelmChartsrepository上進(jìn)行管理。該項(xiàng)目接受chart源代碼,并Tiller,Namespaces和在某些情況下,可能希望將Tiller的范圍或?qū)⒍鄠€(gè)TillersTillernamespacekube-systemTillers,只要它們各自在自己的namespace中運(yùn)行。TillernamespaceKubernetesRBAChelminit--service-accounthelminit--service-accountRelease名稱在每個(gè)Tillerchart

向Tiller添加服務(wù)帳戶。你可以在這里here.找到的不建議將多個(gè)Tillers配置為在相同名空間中管理資源總本章介紹了helmhelm helmhelm有關(guān)這些命令的信息,請(qǐng)查看Helm的內(nèi)置幫助:helmhelp。Copyright? )2017-2018allright,poweredbyGitbookUpdatedat2018-11-24插件Helm2.1.0引入了客戶端Helm插件plugin的概念。插件是一種可以通過(guò)helmCLI的工具,但它不是內(nèi)置Helm代碼現(xiàn)有的插件可以在相關(guān)部分related找到或者通過(guò)搜索。概Helm插件是與Helm無(wú)縫集成的附加工具。它們提供了擴(kuò)展Helm功能集的方法,但不需要將每個(gè)新功能都通Go語(yǔ)言寫入并添加到工具中Helm可以在Helm安裝中添加和刪除它們,而不會(huì)影響Helm工具。他們與Helm集成,并出現(xiàn)在helmhelpHelm$(helmhome)/pluginsHelm插件模型部分建模在Githelmporcelainplumbing。這是揭示Helm提供用戶體驗(yàn)和頂級(jí)處理邏輯,而插件則是執(zhí)行所需操作的“細(xì)節(jié)工作”的簡(jiǎn)略說(shuō)法。安裝$helmplugininstall使 命令安裝插件??梢詫⒙窂皆O(shè)置為本地文件系統(tǒng)上的$helmplugininstall$(helmURL。helmplugininstall命令克隆或該插件的路徑/URL到給定$(helm$helmplugin /technosophos/helm-如果你有一個(gè)插件tar分發(fā)版,只需將插件解壓到$(helm helmplugin也可以通過(guò)直接從helmplugin構(gòu)建在很多方面,插件類似于chart。每個(gè)插件都有一個(gè)頂

$(helm|-||-|-在上面的例子中,keybase插件包含在名為keybase

插件的是一個(gè)簡(jiǎn)單的YAML文件

YAMLKeybasename:"keybase"version:usage:"IntegrateKeybase.iotoolswithHelm"description:|-ThispluginprovidesKeybaseservicestoHelm.ignoreFlags:falseuseTunnel:command:name:Helm執(zhí)行插件時(shí),這是它將使用的名稱(例如,helmNAME將調(diào)用此插件)name:應(yīng)該匹 名稱。在我們上面的例子中,這意味著插

應(yīng)該在一個(gè)名為keybase helm_name必須限制為ASCIIaz,AZ,0- 和`-_是插件的SemVer2版本

Helm

helmhelmmyplugin--ignoreFlags:--,那ignoreFlags:--TillerTillertrueHelm

為該隧道設(shè)置正確的本地地址。不用擔(dān)心:如果Helm由于Tiller 中將在執(zhí)行前展開任何環(huán)境變量。$HELM_PLUGIN_DIR將指向插件 該命令本身不在s中執(zhí)行。所以你不能在一個(gè)s helmmyplugin helmmyplugin器插

。helm將使用usagedescriptionhelmhelphelmhelp默認(rèn)情況下,Helm可以使用HTTP/S獲取圖表。從Helm2.4.0開始,插件可以從任意源chart。插件應(yīng)在plugin.yaml文件(頂層)中這個(gè)特殊功能:helmrepoaddfavorite如果安裝了這樣的插件,Helm可以通過(guò)調(diào)用helmrepoaddfavorite

庫(kù)repo進(jìn)行交互。特 /的規(guī)則與常 庫(kù)的規(guī)則相同/Helm必須能夠index.yaml文件以發(fā)現(xiàn)并緩存可用charts列表環(huán)境

。SSL憑證來(lái)自commandcertFilekeyFilecaFilefull-其中的repo定義, 器插件將原始內(nèi)容轉(zhuǎn)commandcertFilekeyFilecaFilefull-Helm類 HELM_BIN:helm命令的路徑(由用戶執(zhí)行)。HELM_HOME:Helm的home的路徑。

helm會(huì)有簡(jiǎn)helmHELMPATH*:重要Helm文件

TILLER_HOST:Tiller :port。如果創(chuàng)建隧道,則會(huì)指向隧道的本地端點(diǎn)。否則,它會(huì)指,host或默認(rèn)主機(jī)(按照優(yōu)先級(jí)的規(guī)則)雖 置連接時(shí)以其原始狀態(tài)進(jìn)行關(guān)于如果插件指定useTunnel:true,Helm將執(zhí)行以下操作(按順序關(guān)于參數(shù)標(biāo)記解在執(zhí)行插件時(shí),Helmhome--host--kubehome--host--kube-

11-和help-Copyright? )2017-2018allright,poweredbyGitbookUpdatedat2018-06-29RBAC-基于角色的控Kubernetes中,確保應(yīng)用程序在指定的范圍內(nèi)運(yùn)行最佳的做法是,為特定的應(yīng)用程序的服務(wù)帳戶授予角色。要詳細(xì)了解服務(wù)帳戶權(quán)限請(qǐng)閱讀Kubernetes文檔.BitnamiRBACRBAC基礎(chǔ)知識(shí)。本指南面向希望對(duì)Helm限制如下權(quán)限的用戶:Tiller將資源安裝到特定namespaceHelm客戶端對(duì)Tiller實(shí)例的Tiller和基于角色的控--service-account可以在配置Helm時(shí)使 參數(shù)將服務(wù)帳戶添加到Tiller。前提條件是必須創(chuàng)建一個(gè)--service-accountroleserviceaccounthelminit-helminit-service-accountExample:服務(wù)賬戶帶有cluster-admin$kubectlcreateserviceaccounttiller--namespacekube-systemserviceaccount"tiller"createdrbac-文 rbac-apiVersion:v1name:tillerkubekind:ClusterRoleBindingmetadata:name:kind:ClusterRole-kind:ServiceAccountname:tillernamespace:kube-Note:cluster-admin角色是在Kubernetes$kubectlcreate-frbac-config.yamlserviceaccount"tiller"createdclusterrolebinding"tiller"$helminit--service-account在特定namespace中部署Tiller,并僅限于在該namespace在上面的例子中,我們讓Tiller管理整個(gè)集群。當(dāng)然,Tiller正常工作并不一定要為它設(shè)置集群管理員權(quán)限。我們可以指定Role和RoleBinding來(lái)將Tiller的范圍限制為特定的namespace,而不是指定ClusterRole或$kubectlcreatenamespacetiller-worldnamespace"tiller-world"created$kubectlcreateserviceaccounttiller--namespacetiller-worldserviceaccount"tiller"createdrole-tiller-定義允許Tiller管理 中所有資源的角色,文role-tiller-kind:name:tiller-managerresources:["*"]verbs:$kubectlcreate-frole-tiller.yamlrole"tiller-manager"createdrolebinding-文 rolebinding-kind:name:tiller-binding-kind:ServiceAccountname:tillerapiGroup:$kubectlcreate-frolebinding-tiller.yamlrolebinding"tiller-binding"createdtiller-helmtiller-helm

namespace中安裝Tiller$helminit--service-accounttiller--tiller-namespacetiller-$HELM_HOMEhasbeenconfiguredat/Users/awesome-Tiller(theHelmserversidecomponent)hasbeeninstalledintoyourKubernetesCluster.HappyHelming!$helminstallnginx--tiller-namespacetiller-world--namespacetiller-world LASTDEPLOYED:MonAug716:00:16STATUS:DEPLOYED==> READY RESTARTSwayfaring-yak-alpine ContainerCreating Example:在一個(gè)namespace中部署Tiller,并限制它在另一個(gè)namespace部署資在上面的例子中,我們讓Tiller管理它部署所在的namespace?,F(xiàn)在,讓我們限制Tillernamespace

myorg-myorg-namespaceTillerTillermyorg-myorg-

namespace$kubectlcreatenamespacemyorg-systemnamespace"myorg-system"created$kubectlcreateserviceaccounttiller--namespacemyorg-systemserviceaccount"tiller"createdmyorg-role- 中,定義了一個(gè)允許Tillermyorg-role-

kind:name:tiller-managerresources:["*"]verbs:$kubectlcreate-frole-tiller.yamlrole"tiller-manager"createdrolebinding-將serviceaccount與那個(gè)role綁定 rolebinding-kind:name:tiller-binding-kind:ServiceAccountname:tillerapiGroup:role-$kubectlcreate-frole-myorg-我們還需要授予Tiller權(quán)限myorg-myorg-system.yaml

中的configmaps,以便它可以release信息。kind:name:tiller-manager-apiGroups:verbs:["*"]$kubectlcreate-frole-tiller-myorg-system.yamlrole"tiller-manager"createdrolebinding-tiller-myorg-相應(yīng)的role綁定. rolebinding-tiller-myorg-kind:name:tiller-binding-kind:ServiceAccountname:tillerapiGroup:$kubectlcreate-frolebinding-tiller-myorg-system.yamlrolebinding"tiller-binding"createdHelm和基于角色的控在pod中運(yùn)行Helm客戶端時(shí),為了讓Helm客戶端與Tiller實(shí)例進(jìn)行通信,需要授予某些。具體來(lái)說(shuō),Helm客戶端需要能夠創(chuàng)建pods,轉(zhuǎn)發(fā)端口并能夠在Tiller運(yùn)行的namespace中列出pod(這樣它才可以找到Tiller)。Example:在一個(gè)namespace中部署Helm,與在另一個(gè)namespace中與Tiller交tiller-kube-在這個(gè)例子中,假設(shè)Tillertiller-kube-namespace中運(yùn)行。默認(rèn)情況下,Tiller

的namespace中運(yùn)行,并且Helm客戶端 helm-namespacehelm-helm- helm-apiVersion:v1kind:name:helmhelmkind:Rolename:tiller-user--kind:RoleBindingnamespace:tiller-worldkind:Rolekind:ServiceAccountname:helm$kubectlcreate-fhelm-user.yamlserviceaccount"helm"createdrole"tiller-user"createdCopyright? )2017-2018allright,poweredbyGitbookUpdatedat2018-11-23HelmTiller之間使用HelmTillerSSL/TLSCASSL的加密和身在Helm2.3.0中引入了對(duì)基于TLS的驗(yàn)證的支持配置SSL是一個(gè)高級(jí),需要你已了解Helm和Tiller。概Tiller認(rèn)證模型使用客戶端SSL。Tiller自己使用認(rèn)證驗(yàn)證這些。同樣,客戶端還通過(guò)驗(yàn)Tiller的從Helm2.7.2開始,Tiller要求客戶端由其CA驗(yàn)證。在之前的版本中,Tiller使用了允許自簽名的較弱創(chuàng)建用于為Tiller客戶端和服務(wù)端頒發(fā)的私有為Tiller為Helm創(chuàng)建一個(gè)使用該的Tiller實(shí)配置Helm客戶端以使用CA在本指南結(jié)束時(shí),你應(yīng)該有一個(gè)正在運(yùn)行的Tiller實(shí)例,它只接受來(lái)自可以通過(guò)SSL進(jìn)行驗(yàn)證的客戶端的連生成認(rèn)證生成SSLCA的法是通

間內(nèi)準(zhǔn)備好配置。對(duì)于生產(chǎn)配置,我們建議讀者閱讀文檔theofficialation并咨詢其他資源$opensslgenrsa-out./ca.key.pem$opensslreq-keyca.key.pem-new-x509-days7300-sha256-outca.cert.pem-extensionsv3_caEnterpassphraseforca.key.pem:Youareabouttobeaskedtoenterinformationthatwillbeincorporatedintoyourrequest.WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN.TherearequiteafewfieldsbutyoucanleavesomeblankForsomefieldstherewillbeadefaultvalue,Ifyouenter'.',thefieldwillbeleftCountryName(2lettercode)StateorProvinceName(fullname)[Some-State]:COLocalityName(eg,city)[]:BoulderOrganizationName(eg,company)[InternetWidgitsPtyOrganizationalUnitName(eg,section)CommonName(e.g.serverFQDNorYOURname)AddressCAkey文件要特別注意處理。通常,你需要生成中間簽名密鑰。為了簡(jiǎn)潔起見(jiàn),使用我們的根CA簽署密鑰。生成生成兩個(gè),每個(gè)代表一種類型一個(gè)是用于Tiller的。每個(gè)tiller主機(jī)需要一個(gè)。一個(gè)是給用戶的。每個(gè)helm用戶需要一個(gè)。由于生成這些命令令是相同的,同時(shí)創(chuàng)建。名字將表明他們的目標(biāo)用處。首先,Tiller密鑰:$opensslgenrsa-out./tiller.key.pem4096GeneratingRSAprivatekey,4096bitlongmodulus eis65537EnterpassphraseforVerifying-Enterpassphrasefor接下來(lái),生成Helm$opensslgenrsa-out./helm.key.pem4096GeneratingRSAprivatekey,4096bitlongmodulus eis65537EnterpassphraseforVerifying-Enterpassphrasefor同樣,對(duì)于生產(chǎn)用途,將為每個(gè)用戶生成一個(gè)客戶端接下來(lái),我們需要從這些密鑰創(chuàng)建。對(duì)于每個(gè),這有兩個(gè)步驟,創(chuàng)建CSR,然后創(chuàng)建$opensslreq-keytiller.key.pem-new-sha256-outtiller.csr.pemEnterpassphrasefortiller.key.pem:Youareabouttobeaskedtoenterinformationthatwillbeincorporatedintoyour WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN.TherearequiteafewfieldsbutyoucanleavesomeblankForsomefieldstherewillbeadefaultvalue,Ifyouenter'.',thefieldwillbeleftCountryName(2lettercode)StateorProvinceName(fullname)[Some-State]:COLocalityName(eg,city)[]:BoulderOrganizationName(eg,company)[InternetWidgitsPty ]:TillerServerOrganizationalUnitName(eg,section)[]:CommonName(e.g.serverFQDNorYOURname)[]:tiller-serverAddress[]:Pleaseenterthefollowing'extra'tobesentwithyourrequestAchallengepassword[]:Anoptionalcompanyname我們?yōu)镠elm客戶端重復(fù)這一步驟$opensslreq-keyhelm.key.pem-new-sha256-out#Answerthequestionswithyourclientuser's- -現(xiàn)在我們使用我們創(chuàng)建的CA對(duì)每個(gè)CSR進(jìn)行簽名(調(diào)整days參數(shù)以滿足你的要求$opensslx509-req-CAca.cert.pem-CAkeyca.key.pem-CAcreateserial-intiller.csr.pem-outtiller.ce

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論