Tekton1

參考Tekton官網的Getting Started試試

ZONGRU Li
9 min readJun 15, 2022

原本搞RHEL機台來試官方的範例,但是minikube安裝完全沒辦法成功

所以最後還是試試Ubuntu機台

參考官方範例(LINK)

執行連結的minikube安裝(LINK):

#執行上述:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb

然後安裝kubectl工具(LINK)

#整理指令如下:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlkubectl version --client -o json

回到Tekton的網頁:

#執行相關指令:
minikube start
kubectl cluster-info

參考這邊:

#所以指令改成:
minikube start --driver=docker
minikube config set driver dockerkubectl cluster-info

所以先搞定docker Ubuntu的安裝(LINK):

#整理指令如下:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
#添加Docker’s official GPG key:
sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#增設Repo位置:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#以下實際安裝Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-pluginapt-cache madison docker-ce#測試:
sudo docker run hello-world

回頭跑上面安裝minikube:

#安裝指令:
minikube start --driver=docker

所以整個指令又改為:

#安裝指令:
sudo usermod -aG docker $USER && newgrp docker
minikube start --driver=docker
#接著:
minikube config set driver docker
kubectl cluster-info

看起來上面set要在沒有start的時候

不過就先試試

接著繼續Tekton的頁面流程:

#如上執行:
kubectl apply --filename \
https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
#然後立刻跑以下指令觀察上述動作:
kubectl get pods --namespace tekton-pipelines --watch

好像還滿正常運作的...!?

基礎設施建立如上! 後面才真的跑官方實作

後面就是照著官方文件操作:

先寫task檔,內容如下(檔名我就先用hello-world.yaml):

#執行以下:
kubectl apply --filename hello-world.yaml

接著建立另一個檔TaskRun(hello-world-run.yaml):

#執行上述檔案:
kubectl apply --filename hello-world-run.yaml
#確認TaskRun原件執行狀況:
kubectl get taskrun hello-task-run
#取得TaskRun的log內容:
kubectl logs --selector=tekton.dev/taskRun=hello-task-run

以上就完成了簡單的Task元件與執行Task的TaskRun元件的範例

在來跑pipeline的(Tekton連結)

#整理Tekton CLI工具安裝如下(Ubuntu的):
sudo apt update;sudo apt install -y gnupg
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3EFE0E0A2F2F60AAecho "deb http://ppa.launchpad.net/tektoncd/cli/ubuntu eoan main"|sudo tee /etc/apt/sources.list.d/tektoncd-ubuntu-cli.listsudo apt update && sudo apt install -y tektoncd-cli
#然後我自己測試一下:
tkn --help

可以!

回過頭繼續跑Tekton pipeline示範(LINK):

建立新的Task(goodbye-world.yaml):

#並執行:
kubectl apply --filename goodbye-world.yaml

再來要建立pipeline元件(hello-goodbye-pipeline.yaml):

#並執行:
kubectl apply --filename hello-goodbye-pipeline.yaml

再來要建立一個驅動上述pipeline的元件

也就是PipelineRun元件(hello-goodbye-pipeline-run.yaml):

#並執行它:
kubectl apply --filename hello-goodbye-pipeline-run.yaml

接著要透過tkn工具來看看上述的運行log內容:

#執行:
tkn pipelinerun logs hello-goodbye-run -f -n default

以上就完成了目前2022/06/16官網的demo教學了

LINK

(看起來已經沒有PipelineResource這種元件了!?)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet