sh 更新Kubernetes部署映像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 更新Kubernetes部署映像相关的知识,希望对你有一定的参考价值。

#!/bin/bash
#
# Update docker image tag in a kubernetes deployment

# Kubernetes cluster address
K8S_CLUSTER="change.me"
# Kubernetes cluster certificate path
K8S_CERTIFICATE="/change/me"
# Kubernetes cluster token
K8S_USER="CHANGEME"
# Kubernetes cluster Token
K8S_TOKEN="CHANGEME"

# Docker registry server and credentials
REGISTRY_SERVER="https://change.me:5000"
REGISTRY_USER="CHANGEME"
REGISTRY_PASSWORD="CHANGEME"

# Kubernetes deployment
APP=$1
# Docker image tag
VERSION=$2

echo "\n-- Check if image exists in docker registry"
curl --head --fail --silent --show-error --insecure --basic --user ${REGISTRY_USER}:${REGISTRY_PASSWORD} \
     https://${REGISTRY_SERVER}/v2/${APP}/manifests/${VERSION}

if [ ! -x ./kubectl ]; then
	echo "\n-- Download kubernetes client"
	wget --quiet --output-document=./kubectl https://storage.googleapis.com/kubernetes-release/release/v1.6.3/bin/linux/amd64/kubectl
	chmod +x ./kubectl
fi

echo "\n-- Check if kubernetes client is configured"
./kubectl config get-contexts ${K8S_USER}
if [ $? -ne 0 ]; then
	echo "\n-- Configure kubernetes client"
	./kubectl config set-cluster ${K8S_CLUSTER} \
  		--embed-certs=true \
  		--server=https://api.${K8S_CLUSTER} \
  		--certificate-authority=${K8S_CERTIFICATE}
  
	./kubectl config set-credentials ${K8S_USER} --token=${K8S_TOKEN}

	./kubectl config set-context ${K8S_USER} \
  		--cluster=${K8S_CLUSTER} \
  		--user=${K8S_USER}
  
	./kubectl config use-context ${K8S_USER}
fi

echo "\n-- Update deployment image"
./kubectl set image deployment/${APP}-deployment *=${REGISTRY_SERVER}/${APP}:${VERSION}

以上是关于sh 更新Kubernetes部署映像的主要内容,如果未能解决你的问题,请参考以下文章

kubernetes:无法使用具有 RW 访问权限的持久卷部署 jenkins 映像

Kubernetes 设置图像缺少资源类型“部署”

sh 在Ubuntu上部署Kubernetes

如何配置 kubernetes 从托管在同一集群/内部的注册表中提取容器映像

为已部署的 Kubernetes 服务获取 YAML?

pod 没有在 kubernetes 中创建,但存在部署?