微服务架构从入门到精通之DevOps实践篇(六) Kubectl Docker镜像构建
上篇文章《DevOps基础进行构建》介绍了Jdk、Maven等基础镜像构建过程,接下来本章主要讲解部署到kubernetes的时候所需要的kubectl镜像构建过程。 需要一个 kubectl镜像在 Gitlab服务器上运行,并能远程连接 K8S 服务器的镜像。在Docker Hub 上有最新的 kubectl镜像:lachlanevenson/k8s-kubectl:latest..
·
上篇文章《DevOps基础进行构建》介绍了Jdk、Maven等基础镜像构建过程,接下来本章主要讲解部署到kubernetes的时候所需要的kubectl镜像构建过程。
需要一个 kubectl镜像在 Gitlab服务器上运行,并能远程连接 K8S 服务器的镜像。在Docker Hub 上有最新的 kubectl镜像:lachlanevenson/k8s-kubectl:latest,但除此外,为了能连接 K8S 服务器,还需要将 K8S 服务器上~/.kube/admin.conf拷到镜像的~/.kube/config,所以还需要创建一个专用的镜像。
1.1 下载centos7镜像
docker pull lachlanevenson/k8s-kubectl
1.2 Config的配置
apiVersion: v1
clusters:
- cluster:
insecure-skip-tls-verify: true
server: xxxx:xxxx
name: docker-for-desktop-cluster
contexts:
- context:
cluster: docker-for-desktop-cluster
user: docker-for-desktop
name: docker-for-desktop
current-context: docker-for-desktop
kind: Config
preferences: {}
users:
- name: docker-for-desktop
user:
token:
- API URL
kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}'.
- Token
运行 kubectl get secrets. Note the name of the secret you need the token for.
kubectl get secret <SECRET_NAME> -o jsonpath="{['data']['token']}" | base64 --decode.
- CA certificate, 运行
kubectl get secret <secret name> -o jsonpath="{['data']['ca\.crt']}" | base64 --decode.
1.3 Dockerfile
# LICENSE UPL 1.0
#
# Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
#
FROM lachlanevenson/k8s-kubectl:v1.11.0
MAINTAINER Zhu Xihua <503172601@qq.com>
ENV KUBE_LATEST_VERSION="v1.11.0"
ADD admin.conf /root/.kube/config
WORKDIR /root
然后将 K8S(主机 B)上的/etc/kubenertes/admin.conf拷到 Dockerfile所在目录,然后进入该目录,使用下面命令创建镜像并提交到私库:
1.5 推送镜像
通过下面命令把镜像推送到docker hub。至此,jdk8镜像就构建完毕。
cd kubectl
docker login
sudo docker build -t xxxx:5000/kubectl:1.11.0 .
sudo docker push xxxx:5000/kubectl:1.11.0
至此,微服务所需要的基础镜像构建告一段落。下一节开始GitLab的CI/DI配置了。
更多推荐
已为社区贡献3条内容
所有评论(0)