介绍
kubernetes,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg 系统的一个开源版本,于 2014 年 9 月发布第一个版本,2015 年 7 月发布第一个正式版本。
kubernetes 的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,如今建木 CI 也支持使用节点来给 k8s 部署资源啦!!
定义资源文件
使用声明式配置方式往 k8s 上部署资源,首先我们的有一个资源文件,这里我们往名称为 hx 的 namespace 中配置 pod 控制器 Deployment,用此 Deployment 启动三台 nginx
apiVersion: apps/v1
kind: Deployment
metadata:
name: pc-deployment
namespace: hx
spec:
replicas: 3
selector:
matchLabels:
app: nginx-pod
template:
metadata:
labels:
app: nginx-pod
spec:
containers:
- name: nginx
image: nginx:1.17.1
复制代码
使用 kubectl-deploy 节点
查看宿主机资源状态
可以看到,目前的 hx 的 namespace 中空无一物
定义 pipeline 文件
使用 kubectl-deploy 节点在 k8s 上部署资源,节点官方地址在kubectl-deploy
使用 pipeline 定义 kubectl-deploy 节点的部署资源流程: 我们使用 git clone 节点将资源文件拉取下来,然后使用 kubectl-deploy 部署这个资源文件,具体配置如下:
name: k8s-deploy-resources
description: k8s-deploy-resources的测试pip
pipeline:
git_clone:
type: "git_clone:1.2.0"
param:
remote_url: https://gitee.com/canon_xi/test.git
username: xxxxxx
password: xxxxxx
k8s-deploy-resources:
type: "kubectl_deploy:1.0.0"
param:
# k8s指令
command: apply
# 资源文件路径
resource_file_path: ${git_clone.git_path}/nginx.yaml
# 用于服务端证书认证的自签名CA根证书(对应kubeconfig文件的clusters.cluster.certificate-authority-data项)
certificate_authority_data: ((k8s.certificate_authority_data))
# api-server的地址(对应kubeconfig文件的clusters.cluster.server项)
server: ((k8s.server))
# base64加密后的客户端证书(对应kubeconfig文件的users.user.client-certificate-data项)
client_certificate_data: ((k8s.client_certificate_data))
# base64加密后的客户端证书私钥(对应kubeconfig文件的users.user.client-key-data项)
client_key_data: ((k8s.client_key_data))
复制代码
将节点跑起来
将 pipeline 配置到建木 CI 中,节点都准备好了,直接跑起来!
不多会就可以看见节点都跑完了
查看日志消息可知,资源已成功部署
再次查看宿主机资源状态
三台 nginx 已成功部署
本文为建木博主「Freedom」的原创投稿文章,转载请联系授权。
项⽬官⽹
项⽬托管
项⽬文档
在线体验
评论