<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面向 Kubernetes 開發(fā)者的設(shè)置指南

          共 12730字,需瀏覽 26分鐘

           ·

          2021-02-03 06:30

          本設(shè)置指南主要面向正在或?qū)⒁獏⑴c Kubernetes 開源項(xiàng)目以及為之做貢獻(xiàn)的開發(fā)者、技術(shù)作家和測試人員。例如,它適用于以下各類人員:想要為 Kubernetes 進(jìn)行文檔編輯、代碼修復(fù)和草擬新功能;開發(fā)和使用各種使用 Kubernetes API 的應(yīng)用程序,如概要分析、監(jiān)視和集成工具;開發(fā)專門利用 Kubernetes 功能集的服務(wù)。

          文章一開頭先介紹了基礎(chǔ)知識(shí)。接下來將幫助您設(shè)置開發(fā)環(huán)境。隨后,您將了解如何在 Kubernetes 項(xiàng)目中使用 GitHub 和 Git。最后幾部分則在開發(fā)、構(gòu)建和測試方面提出了一些建議,您因而可以為 Kubernetes 項(xiàng)目貢獻(xiàn)有用的代碼。

          一些基礎(chǔ)問題

          如果您是 Kubernetes 新手,在我們開始之前,您可能會(huì)遇到一些問題。

          什么是 Kubernetes?

          Kubernetes 是一組用 go 編寫的應(yīng)用程序。這些應(yīng)用程序一起形成了管理容器的交互式平臺(tái)。

          Kubernetes 源代碼位于何處?

          Kubernetes 在 GitHub 上提供。

          Kubernetes 是 OSS 嗎?

          Kubernetes 是 Google 捐贈(zèng)給云原生計(jì)算基金會(huì) (CNCF) 的開源軟件。

          Kubernetes 在何處運(yùn)行?

          Kubernetes 可在許多操作系統(tǒng)/分發(fā)版上運(yùn)行。但是,本指南將向您展示在 Ubuntu 上開發(fā)和測試 Kubernetes 的設(shè)置步驟。

          前提條件

          要遵循此設(shè)置指南,您需要滿足以下前提條件:

          • 具有一個(gè) GitHub 帳戶
          • 掌握 Git、bash 和 Linux 方面的基礎(chǔ)知識(shí)

          預(yù)估時(shí)間

          在按照本設(shè)置指南中這些步驟的順序執(zhí)行操作時(shí),各個(gè)步驟的預(yù)估時(shí)間完全由您來決定。一些開發(fā)者會(huì)使用跳過鏈接,他們或許只是將本文用作參考。而另一些人則可能需要半天、一整天甚至幾天乃至一周的時(shí)間,例如,您遇到了很多問題,或者對(duì) OSS 開發(fā)、測試或 Linux 很陌生。

          為解決此類時(shí)間差異,我提供了一些可跳過的地方。當(dāng)某些操作即使是專家也需要花費(fèi)很長時(shí)間時(shí),我會(huì)告訴您。我還會(huì)提供一些捷徑,讓您能夠從小處著手構(gòu)建和測試,從而加快速度。具體操作需要多長時(shí)間取決于您的硬件。例如,某些測試操作在速度較快的集群上可能只需要 10 分鐘,而在速度較慢的筆記本電腦上則有可能需要長達(dá) 20 個(gè)小時(shí)。

          您的開發(fā)環(huán)境

          首先創(chuàng)建基本的 Kubernetes 開發(fā)環(huán)境:

          • Linux 終端和/或 ssh。(參閱設(shè)置您的主機(jī)操作系統(tǒng)、設(shè)置 Ubuntu 和使用并配置 ssh。)
          • Go (golang.org)(參閱安裝 Go。)
          • Docker(參閱安裝 Docker 和 containerd。)
          • 構(gòu)建工具(參閱安裝構(gòu)建工具。)
          • JSON 處理器 jq(參閱安裝 jq。)
          • python-pip 和 pyyaml(參閱安裝 python-pip 和 pyyaml。)
          • etcd

          如果您已按照自己喜歡的方式完成了所有設(shè)置,可隨時(shí)跳至 GitHub 和 Kubernetes 項(xiàng)目。

          設(shè)置您的主機(jī)操作系統(tǒng)

          您需要做的第一件事就是安裝 Ubuntu。Ubuntu 16.04 或 18.04 LTS 服務(wù)器或桌面版就足夠用了。您也可以使用較新的非 LTS 發(fā)行版,這取決于您。我現(xiàn)在通過最新的 Virtual Box 在 iMac 上的虛擬機(jī) (VM) 中運(yùn)行 16.04 LTS 桌面版,通過 Virtual Box 在 Mac 筆記本電腦上運(yùn)行 18.04 LTS 桌面版,在使用最常用零部件組裝的裸機(jī)服務(wù)器上則運(yùn)行 18.04 LTS 服務(wù)器版。

          您當(dāng)然可以使用虛擬機(jī)進(jìn)行 Kubernetes 開發(fā),我就是這樣做的,所以,如果您沒有資源來構(gòu)建自己的服務(wù)器,請(qǐng)不要灰心。

          要在 Virtual Box 上設(shè)置 Ubuntu,應(yīng)完成以下步驟:

          • 下載并安裝 Virtual Box:https://www.virtualbox.org/wiki/Downloads
          • 下載一個(gè) Ubuntu ISO 文件(服務(wù)器/桌面版):http://www.ubuntu.com/
          • 使用剛下載的 Ubuntu ISO 創(chuàng)建一個(gè)新的 vbox。

          考慮以下有關(guān) Virtual Box 設(shè)置的建議:

          • 基本內(nèi)存 8g

          • 140g vdi 硬盤驅(qū)動(dòng)器

          • 共享剪貼板 — 僅雙向(如果安裝桌面版)

          • 顯存 128mb(如果安裝桌面版)

          • 網(wǎng)絡(luò):NAT

          • 必須安裝訪客附加組件(如果是桌面版,單擊 VirtualBox VM > Devices > Insert Guest Additions CD Image…)

          • 端口轉(zhuǎn)發(fā)規(guī)則(參閱高級(jí) Network 部分中的按鈕):

            Virtual Box 中的端口轉(zhuǎn)發(fā)規(guī)則

          設(shè)置 Ubuntu

          如果使用 Ubuntu 桌面版,則創(chuàng)建一個(gè)終端:

          Ubuntu 終端

          然后運(yùn)行軟件更新程序:

          Ubuntu 軟件更新程序

          以下截屏展示了如何從終端運(yùn)行 apt-get 更新:

          從終端運(yùn)行 apt-get 命令

          使用并配置 ssh

          如果安裝了 Ubuntu 桌面版并且要運(yùn)行 ssh,可完成以下步驟以開始使用 ssh:

          使用您的 PC 或 Mac 客戶端通過 ssh 連接到您的 Ubuntu 服務(wù)器或桌面版。如果安裝了 Ubuntu 桌面版并希望運(yùn)行 ssh,則運(yùn)行以下命令:

          $?sudo?apt-get?install?openssh-server
          $?sudo?service?ssh?start?or?sudo?/etc/init.d/ssh?start
          $?ssh?-v?localhost

          然后從客戶端機(jī)器(使用密碼)登錄到 ssh 服務(wù)器:

          登錄到 ssh 服務(wù)器

          對(duì)于可選的無密碼 ssh,完成以下步驟:

          運(yùn)行端到端 Kubernetes 測試以往通常需要配置無密碼的 ssh(使用密鑰而不是密碼)。如果您不想設(shè)置無密碼的 ssh,可直接跳至安裝 Go。

          首先使用以下命令生成 Ubuntu 公鑰和私鑰:

          $?ssh-keygen?-t?rsa

          然后使用默認(rèn)位置并輸入密碼,或者只按 ENTER 鍵:

          [email protected]

          在 Mac 上,從 ~/.ssh 目錄運(yùn)行以下命令以生成密鑰:

          $?ssh-keygen?-b?1024?-t?rsa?-f?id_rsa?-P?""

          將 Mac 公鑰(例如,cat ~/.ssh/d_rsa.pub)復(fù)制粘貼到您的 ubuntu guest /home/user/.ssh/authorized_keys 文件中。

          接下來,為無密碼 ssh 配置 Ubuntu 訪客:

          $?sudo?nano?/etc/ssh/sshd\_config

          對(duì) UN 注釋/配置進(jìn)行以下編輯:

          PubkeyAuthentication?yes

          AuthorizedKeyFile?%h/.ssh/authorized\_keys

          PasswordAuthentication?no

          PermitRootLogin?without-password

          重新啟動(dòng):

          $?sudo?service?ssh?restart?or?sudo?/etc/init.d/ssh?restart

          然后,進(jìn)行測試:

          $?ssh?mike@ubuntu?(ubuntu?=?hostname)?or?127.0.0.1?or?10.0.2.15?...

          確保正常工作,然后退出。

          由于您將通過無密碼形式以 root 用戶身份登錄,因此可以采取一種便捷方法,將用戶公鑰和私鑰以及 authorized_keys 復(fù)制到 /root/.ssh,例如:

          $?sudo?cp?~/.ssh/authorized_keys?/root/.ssh/authorized_keys?(you?may?have?to?mkdir?/root/.ssh)
          $?sudo?cp?~/.ssh/id_rsa?/root/.ssh/id_rsa
          $?sudo?cp?~/.ssh/id_rsa.pub?/root/.ssh/id_rsa.pub

          您現(xiàn)在應(yīng)能從 Mac 終端上的用戶帳戶,以 root 用戶或普通用戶身份不使用密碼通過 ssh 連接到訪客 Ubuntu:

          終端 1:

          [email protected]

          終端 2:

          [email protected]

          您還應(yīng)該能利用 Ubuntu 主機(jī)上的用戶帳戶或 root 用戶帳戶,通過 ssh 連接到 Ubuntu 主機(jī)上的用戶帳戶和 root 用戶帳戶:

          [email protected]
          [email protected]

          安裝 Go

          在安裝時(shí),確保安裝 Kubernetes 支持的最新版本的 Go(或盡可能接近)。

          https://golang.org/dl/ 中選擇所需的版本,然后使用 curl 將其下載到本地主機(jī):

          $?curl?-O?https://storage.googleapis.com/golang/go1.13.9.linux-amd64.tar.gz

          完成以下安裝步驟:

          $?tar?-xvf?go1.13.9.linux-amd64.tar.gz
          $?sudo?mv?go?/usr/local
          $?rm?go1.13.9.linux-amd64.tar.gz

          為適用的用戶配置環(huán)境變量,例如,當(dāng)前登錄的用戶 (~):

          $?sudo?nano?~/.profile

          $?sudo?nano?/root/.profile

          現(xiàn)在,通過添加以下行將導(dǎo)出路徑語句添加到這些文件:

          $?export?PATH=$PATH:/usr/local/go/bin:/home/mike/go/bin

          注:/usr/local/go/bin 用于運(yùn)行 go 隨附的 go 二進(jìn)制文件,/home/username/go/bin 用于運(yùn)行您使用 go 構(gòu)建的任何 go 應(yīng)用程序。

          測試配置:

          $?go?version

          go?version?go1.13.9?linux/amd64

          要以 sudo 方式運(yùn)行用戶個(gè)人資料編輯,可運(yùn)行以下命令:

          $?sudo?su?--

          #?source?/home/mike/.profile

          盡管風(fēng)險(xiǎn)更大,但您可以 root 用戶身份登錄并通過 visudo 更改 sudo secure_path 來添加 go 的路徑:

          #?visudo

          編輯默認(rèn) sudo secure_path

          Defaults
          secure\_path=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/go/bin:/home/mike/go/bin\"

          測試您的 sudo 配置:

          $?sudo?go?version

          go?version?go1.13.9?linux/amd64

          安裝 Docker 和 containerd

          有關(guān)更多信息,可參閱在 Ubuntu 上安裝 Docker Engine(https://docs.docker.com/install/linux/docker-ce/ubuntu/)。

          要安裝 Docker,應(yīng)先更新軟件包:

          $?sudo?apt-get?update

          然后移除任何先前版本:

          $?sudo?apt-get?remove?docker?docker-engine?docker.io?containerd?runc

          安裝 https 傳輸支持:

          $?sudo?apt-get?install?\
          apt-transport-https?\
          ca-certificates?\
          curl?\
          gnupg-agent?\
          software-properties-common

          添加 Docker 的 GPG 密鑰:

          $?curl?-fsSL?https://download.docker.com/linux/ubuntu/gpg?|?sudo?apt-key?add?-

          將 Docker 的穩(wěn)定發(fā)行版添加為 apt 存儲(chǔ)庫:

          $?sudo?add-apt-repository?"deb?[arch=amd64]?https://download.docker.com/linux/ubuntu?$(lsb_release?-cs)?stable"

          安裝最新穩(wěn)定版本的 Docker 和 containerd:

          $?sudo?apt-get?update

          $?sudo?apt-get?install?docker-ce?docker-ce-cli?containerd.io

          要選擇特定版本的 Docker,可運(yùn)行以下命令:

          $?sudo?apt-get?install?docker-ce=?docker-ce-cli=?containerd.io

          測試您的 Docker 安裝:

          $?sudo?docker?run?hello-world

          將您自己添加到以 sudo 方式運(yùn)行的 Docker 組中,因此您無需輸入 sudo 即可運(yùn)行 Docker:

          $?sudo?usermod?-aG?docker?mike

          重新引導(dǎo)您的 Ubuntu 主機(jī):

          $?sudo?shutdown?-r

          重新引導(dǎo)完主機(jī)后,使用 ssh 重新登錄到您的主機(jī),然后再次測試 docker,這次不使用 sudo:

          $?docker?run?hello-world

          安裝構(gòu)建工具

          運(yùn)行以下命令:

          $?sudo?apt-get?install?build-essential

          安裝 jq

          運(yùn)行以下命令以安裝 jq(JSON 處理器):

          $?sudo?apt-get?install?jq

          安裝 python-pip 和 pyyaml

          運(yùn)行以下命令以安裝 python-pip 和 pyyaml:

          $?sudo?apt-get?install?python-pip

          $?sudo?pip?install?pyyaml

          GitHub 和 Kubernetes 項(xiàng)目

          首先,讓我們看一下如何建立分支,然后克隆您的分支。接著,介紹一些關(guān)于個(gè)人資料和客戶端配置的注意事項(xiàng)。最后,您將了解 Kubernetes 項(xiàng)目的 Git 工作流。

          建立分支

          在 GitHub 上為以下項(xiàng)創(chuàng)建開發(fā)分支:

          • https://github.com/kubernetes/kubernetes 上的 Kubernetes 代碼
          • https://github.com/kubernetes/website 上的 Kubernetes 網(wǎng)站和文檔
          • https://github.com/kubernetes/test-infra 上的 Kubernetes test-infra

          克隆您的分支

          通常,在克隆 github.com 源代碼存儲(chǔ)庫時(shí),您可以使用 $GOPATH/src/github.com 路徑或 ~/go/src/github.com/projectname 路徑(表示 GitHub 中源代碼的路徑)。這樣可以方便使用 go get 類型命令拉取 GitHub 托管的數(shù)據(jù)包。

          但是,出于遺留的原因,Kubernetes 包被命名為 k8s.io/kubernetes,而不是您可能想到的 github.com/kubernetes/kubernetes。因此,要讓所有開發(fā)工具正常工作并能在磁盤上找到您的數(shù)據(jù)包代碼,就需要將克隆版本放在 k8s.io 目錄中。

          使用以下步驟從您的 name/kubernetes 分支創(chuàng)建 k8s.io/kubernetes 源代碼樹:

          mike@mike-VirtualBox:~/go/src$?mkdir?k8s.io
          mike@mike-VirtualBox:~/go/src$?cd?k8s.io
          $?git?clone?https://github.com/mikebrow/kubernetes.git
          $?git?clone?https://github.com/mikebrow/website.git
          $?git?clone?https://github.com/mikebrow/test-infra.git

          結(jié)果:源文件從您的分支復(fù)制(克?。┑?go/src/k8s.io/kubernetesk8s.io/website 目錄。Git 在您的本地硬盤上為您的 git hub 分支創(chuàng)建一個(gè)主分支。

          檢查分支的狀態(tài):

          $?cd?kubernetes

          $?git?status

          On?branch?master
          Your?branch?is?up-to-date?with?'origin/master`.
          nothing?to?commit,?working?directory?clean

          GitHub 個(gè)人資料建議

          考慮以下 GitHub 個(gè)人資料建議:

          • 向您的公開個(gè)人資料添加一個(gè)電子郵箱
          • 啟用雙因素身份驗(yàn)證

          Git 客戶端配置建議

          考慮以下客戶端配置建議:

          user.* 條目設(shè)置為全局和/或本地:

          $?git?config?--local?user.name?"full?name?here"

          $?git?config?--local?user.email?"email?address?here"

          $?git?config?--global?user.name?"full?name?here"

          $?git?config?--global?user.email?"email?address?here"

          讓推送變得更容易:

          $?git?config?--global?push.default?simple

          運(yùn)行以下命令,這樣就不需要每次都記住 GitHub 憑證:

          $?git?config?credential.helper?store

          告知 git 跟蹤針對(duì) kubernetes/kubernetes 在您的硬盤上對(duì)克隆分支的更改:

          $?git?remote?add?upstream?https://github.com/kubernetes/kubernetes.git

          運(yùn)行 git config -l 的結(jié)果應(yīng)類似于:

          user.name=Mike?Brown
          [email protected]
          push.default=simple
          core.repositoryformatversion=0
          core.filemode=true
          core.bare=false
          core.logallrefupdates=true
          remote.origin.url=https://github.com/mikebrow/kubernetes.git
          remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
          branch.master.remote=origin
          branch.master.merge=refs/heads/master
          remote.upstream.url=https://github.com/kubernetes/kubernetes.git
          remote.upstream.fetch=+refs/heads/*:refs/remotes/upstream/*
          credential.helper=store

          Kubernetes 開源項(xiàng)目的 Git 工作流

          下圖顯示了一個(gè)查找和修復(fù) GitHub 上開源產(chǎn)品問題的典型 Git 工作流。盡管此工作流是為 Docker 設(shè)計(jì)的,但它也適用于 Kubernetes。

          從終端運(yùn)行 apt-get 命令

          在下面的 Kubernetes 問題中找到要處理的內(nèi)容:https://github.com/kubernetes/kubernetes/issues

          Kubernetes OSS 中的問題截屏

          在您找到的問題上添加一條注釋。

          如果您有任何疑問,盡管大膽提出。

          如果希望解決問題,請(qǐng)說出您的問題。例如,添加一個(gè)句子,說明您正在調(diào)用 #dibs,以表明您正在解決此問題。

          如果您不確定自己能否解決該問題,至少應(yīng)該使用 #investigating 表明您正在執(zhí)行調(diào)查分析。雖然沒有為您分配,但這會(huì)讓其他人知道您以后可能會(huì)調(diào)用 dibs。

          Kubernetes 開發(fā)(安裝 etcd)

          在構(gòu)建 Kubernetes 之前,您需要安裝 etcd。Kubernetes 隨附以下腳本來安裝 etcd:

          $?hack/install-etcd.sh

          將顯示的 etcd 路徑添加到您的用戶個(gè)人資料。例如,使用以下命令將 /home/mike/go/src/k8s.io/kubernetes/third_party/etcd 添加到您的路徑:

          $?sudo?nano?~/.profile

          $?sudo?nano?/root/.profile

          如果需要,可將其添加到 sudo 的 secure\_path

          $?sudo?su?-
          #?visudo

          現(xiàn)在,安全路徑應(yīng)類似如下:

          Defaults
          secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/go/bin:/home/mike/go/bin:/home/mike/go/src/k8s.io/kubernetes/third_party/etcd"

          重新引導(dǎo)您的主機(jī):

          $?sudo?shutdown?-r

          重新引導(dǎo)完主機(jī)后,使用 ssh 重新登錄到您的主機(jī),然后測試 etcd:

          $?etcd?--version
          $?sudo?etcd?--version

          使用 make 構(gòu)建 Kubernetes

          使用 help 目標(biāo)顯示 make 選項(xiàng):

          $?make?help

          一些免責(zé)聲明和警告:首次構(gòu)建、驗(yàn)證和測試時(shí),Kubernetes 需要很長時(shí)間,因?yàn)樗跇?gòu)建和下載大量的大型容器鏡像。某些下載可能會(huì)失敗,這會(huì)在您首次甚至是第二次嘗試運(yùn)行它們時(shí),導(dǎo)致意外的構(gòu)建和測試失敗。另外,由于測試的某些或許多部分可能會(huì)發(fā)生“主要”錯(cuò)誤,而您將在這些錯(cuò)誤基礎(chǔ)上構(gòu)建,并且某些錯(cuò)誤僅在長時(shí)間超時(shí)后才會(huì)發(fā)生,因此需要耐心。即使所有內(nèi)容都已下載且沒有任何錯(cuò)誤,構(gòu)建、驗(yàn)證和測試步驟預(yù)計(jì)也要花費(fèi)大量時(shí)間。

          如果要構(gòu)建一切以在本地運(yùn)行 Kubernetes,可使用 all 目標(biāo):

          $?sudo?make?all

          如果只想構(gòu)建軟件包/可執(zhí)行文件之一,可使用 make WHAT=cmd/package\_name。例如,要構(gòu)建 kublet 服務(wù)器,可運(yùn)行以下命令:

          $?sudo?make?WHAT=cmd/kublet

          根據(jù)您所做的更改,可能不會(huì)始終構(gòu)建客戶端/服務(wù)器軟件包。如果要強(qiáng)制同步二者(清除/移除構(gòu)建二進(jìn)制文件),可使用 clean:

          $?sudo?make?clean

          要生成發(fā)行版,可運(yùn)行以下命令:

          $?sudo?make?release

          要在不運(yùn)行測試的情況下生成發(fā)行版,可運(yùn)行以下命令:

          $?sudo?make?release-skip-tests

          測試 Kubernetes(單元和集成測試)

          在將更改提交到本地開發(fā)分支之前,建議您先運(yùn)行驗(yàn)證、單元和集成測試。根據(jù)更改的類型,您可能還需要運(yùn)行端到端測試存儲(chǔ)桶。

          在將 PR 推送到 kubernetes/kubernetes 之前,構(gòu)建要完成的驗(yàn)證測試(例如,預(yù)提交驗(yàn)證):

          $?sudo?make?verify

          針對(duì)單元測試運(yùn)行以下命令:

          $?sudo?make?test

          僅針對(duì) pkg/api/pod 測試運(yùn)行以下命令:

          $?sudo?make?test?WHAT=./pkg/api/pod

          僅在詳細(xì)模式下運(yùn)行 kubelet 測試:

          $?sudo?make?test?WHAT=./pkg/kubelet?GOFLAGS=-v

          在詳細(xì)模式下運(yùn)行 pod 和 kubelet 測試:

          $?sudo?make?test?WHAT="./pkg/api/pod?./pkg/kubelet"?GOFLAGS=-v

          針對(duì)集成測試運(yùn)行以下命令:

          $?sudo?make?test-integration

          針對(duì) kubelet 集成測試運(yùn)行以下命令:

          $?sudo?make?test-integration?WHAT=./test/integration/kubelet

          在詳細(xì)模式下運(yùn)行 pod 集成測試:

          $?sudo?make?test-integration?WHAT=./test/integration/pods?GOFLAGS="-v"

          Kubernetes 端到端測試

          以下部分展示如何運(yùn)行 Kubernetes 端到端或 e2e 測試。

          1. 安裝 kubetest

          運(yùn)行以下命令來安裝 kubetest:

          $?cd?../test-infra
          $?sudo?GO111MODULE=on?go?install?./kubetest
          $?cd?../kubernetes

          2. 啟動(dòng)本地集群

          運(yùn)行 Kubernetes e2e 測試需要使用集群。e2e 測試可在任何兼容 Kubernetes 的集群上運(yùn)行。本指南展示了如何創(chuàng)建一個(gè)在 Linux 環(huán)境中運(yùn)行的單節(jié)點(diǎn)集群。如果遵循上述說明,那么該集群將在裸機(jī)上的 VM 或 Ubuntu 主機(jī)中以 Ubuntu 訪客帳戶運(yùn)行。您使用了兩個(gè)終端。

          有關(guān)端到端測試的注意事項(xiàng):對(duì)于默認(rèn)的 e2e 測試選項(xiàng),當(dāng)客戶端和服務(wù)器的版本不同步時(shí),將不會(huì)運(yùn)行 e2e 測試?,F(xiàn)在可以通過設(shè)置 check_version_skew=false,對(duì)不一致的版本運(yùn)行 e2e。

          在終端 1 中,構(gòu)建 Kubernetes 并啟動(dòng)您的本地集群:

          $?sudo?make?clean
          $?sudo?make
          $?sudo?PATH=$PATH?hack/local-up-cluster.sh

          在終端 2 中,將 kubectl 配置為與本地集群交互:

          $?export?KUBECONFIG=/var/run/kubernetes/admin.kubeconfig

          檢查您的單節(jié)點(diǎn)本地集群的狀態(tài):

          $?cluster/kubectl.sh?get?nodes

          NAME????????STATUS????AGE
          127.0.0.1???Ready?????3h

          3. 運(yùn)行 e2e 測試

          在終端 2 中,運(yùn)行 e2e 密鑰測試存儲(chǔ)桶:

          $?sudo?kubetest?--provider=local?--test?--test_args="--minStartupPods=1?--ginkgo.focus=Secrets"

          注:minStartupPods 設(shè)置為 1,以反映本地集群中只有一個(gè)節(jié)點(diǎn)。

          現(xiàn)在運(yùn)行所有 e2e 測試(這需要很長時(shí)間才能完成):

          $?sudo?kubetest?--provider=local?--test?--test_args="--minStartupPods=1"

          完成 Kubernetes 集群的使用后,可在終端 1 中使用 ctrl-C 快速將其關(guān)閉。

          有關(guān)端到端測試的更多信息,可參閱 e2e-tests(https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md)。

          Kubernetes 端到端節(jié)點(diǎn)測試

          以下部分展示如何運(yùn)行 Kubernetes 端到端節(jié)點(diǎn)測試,也稱為 e2e-node 測試。

          1. 安裝 ginkgo

          運(yùn)行以下命令:

          $?sudo?go?get?-u?github.com/onsi/ginkgo/ginkgo
          $?sudo?go?get?-u?github.com/onsi/gomega/...

          2. 啟動(dòng)集群

          在終端 1 中,啟動(dòng)您的本地單節(jié)點(diǎn)集群:

          $?sudo?PATH=$PATH?hack/local-up-cluster.sh

          在終端 2 中,將 kubectl 配置為與本地集群交互:

          $?export?KUBECONFIG=/var/run/kubernetes/admin.kubeconfig

          3. 運(yùn)行 e2e-node 測試

          在本地運(yùn)行 Sysctls e2e-node 測試:

          $?sudo?make?test-e2e-node?PARALLELISM=1?FOCUS=Sysctls

          運(yùn)行所有 e2e-node tests(這需要很長時(shí)間才能完成):

          $?sudo?make?test-e2e-node?PARALLELISM=1

          有關(guān)端到端節(jié)點(diǎn)測試的更多信息在 e2e-node-tests(https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md) 文檔中提供。

          構(gòu)建生成的文件

          kubernetes/kubernetes 樹中編輯用于生成其他源文件的源文件之后,必須在執(zhí)行 git commit 之前更新生成的文件。運(yùn)行以下命令:

          $?sudo?make?update

          Running?update-generated-protobuf
          Running?update-codegen
          Running?update-generated-runtime
          Running?update-generated-device-plugin
          ...

          Kubernetes 文檔網(wǎng)站

          如果您想為 Kubernetes 文檔貢獻(xiàn)一份力量,可遵循這些說明(https://kubernetes.io/docs/contribute/start/)進(jìn)行操作。

          其他事宜

          您不應(yīng)該就此止步,還應(yīng)該執(zhí)行其他一些任務(wù):

          • 在提交更改之前,在每個(gè)更改的文件上運(yùn)行 gofmt -s -w file.go。
          • 在提交更改之前,在每個(gè)更改的文件上運(yùn)行 golint。(Kubernetes 團(tuán)隊(duì)目前沒有使用 lint。但它不會(huì)造成任何影響。)
          • 在創(chuàng)建或修改功能時(shí),記得更新文檔。
          • 記住添加測試案例來包含您的更改。
          • 在提交修復(fù)方法或關(guān)閉問題時(shí),應(yīng)在以下提交消息中引用它們:Closes #XXXXFixes #XXXX。
          • 在每次提交后,運(yùn)行測試套件并保證通過測試。
          • 在編碼的過程中頻繁地同步和執(zhí)行 rebase,以跟上主節(jié)點(diǎn)的進(jìn)度。

          結(jié)束語

          我希望本指南可幫助您開始 Kubernetes 開發(fā)之旅。查看并遵循 Kubernetes 社區(qū)準(zhǔn)則,成為成功的貢獻(xiàn)者、成員、審查者、批準(zhǔn)者(又名“提交者”、“維護(hù)者”)和/或子項(xiàng)目負(fù)責(zé)人。

          原文鏈接:https://developer.ibm.com/articles/setup-guide-for-kubernetes-developers/


          CKA 認(rèn)證培訓(xùn)


          ?點(diǎn)擊屏末?|??|?即刻學(xué)習(xí)

          瀏覽 52
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  丝袜操逼网 | 91豆花视频入口网站 | 色婷婷官网 | 日本高清无码在线观看 | 黄片在线播放免费观看a |