文章目錄
1. 概要
Rancher CLI 是一款 Racher 的客戶端工具, 允許通過 shell 命令來調用Rancher的API接口, 大大的方便了對Rancher的操作.
在做CI/CD 集成的時候需要通過Shell 來操作Rancher的K8s集羣, 這個時候就需要 rancher cli + kubectl 來實現了
2. 安裝
2.1 Rancher CLI安裝
登錄rancher 在右下角下載 Rancher CLI, 這裏我們下載linux版本的
下載到對應目錄
tar -zxvf rancher-linux-amd64-v2.2.0.tar.gz
配置環境變量
vim /etc/profile
添加上剛剛解壓的目錄
## rancehr-cli
export PATH=$PATH:/usr/local/rancher-v2.2.0
執行一下 source /etc/profile
測試 rancher
命令
完成
2.2 kubectl 安裝
如果要控制K8s集羣還要安裝 kubectl 命令, 注意url的版本號
wget https://storage.googleapis.com/kubernetes-release/release/v1.15.2/bin/linux/amd64/kubectl
將二進制文件賦予執行權限
chmod +x ./kubectl
移動文件到 /usr/local/bin
mv ./kubectl /usr/local/bin/kubectl
測試命令
3 Rancher CLI 配置API Key
API key 可以和Rancher用戶綁定, 可以通過 API key 來登陸rancher 實現對集羣的操作
3.1 添加API key
點擊右上角用戶, API & Keys
填寫描述, 無需制定集羣範圍, 並且永不過期
拿到key的信息如下
3.2 測試API key
rancher login 試一下
使用剛剛提供的 API 地址訪問
rancher login https://ip:port/v3 --token token-nslsb:jv7txpbqq8kmkt5qd6rhfkvg9wz888pzn6h9nzkwrm2h8v2l72ph4g
輸入yes , 得到下面結果成功
3.3 配置部署鏡像的腳本
3.3.1 獲取集羣和項目的ID
3.3.1.1 集羣ID
簡單直接的在url 能看見
或者集羣界面, API查看也能看到
3.3.1.2 項目ID
項目ID 也能在url 找到, 一般都拼接有項目所屬的集羣ID
3.3.2 更新對應集羣下對應項目下對應NameSpace下的deployment
命令模版如下
rancher kubectl --namespace=${NAMESPACE} apply -f ./${DEPLOYMENT_FILE}.yaml
${NAMESPACE}
是當前項目的命令空間, ${DEPLOYMENT_FILE}
用於更新 deployment 的yaml文件
Jenkins 配置示例
echo yes | rancher login ${RANCHER_URL} -t ${RANCHER_TOKEN} --context ${RANCHER_PROJECT_ID}
sed -i 's^${registry_url}^'"${REGISTRY_URL}^g" "./deployment-${ENV}.yaml"
sed -i 's^${image_tag}^'"pa-1.5.0${IMAGE_TAG}^g" "./deployment-${ENV}.yaml"
rancher kubectl --namespace=${NAMESPACE} apply -f ./deployment-${ENV}.yaml
參數列表