上篇文章《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配置了。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐