部署Tectonic服务到kubernetes集群
前提条件
已经部署完成并可运行kubernetes集群,如果没有请参考基于Vagrant CoreOS的kubernetes一键部署
需要注册Tectonic账号时提供的tectonic-license
.
目前处于技术预览版,所有注册与使用都是免费的,但注册是必须提供信用卡信息。不会扣钱,当正式版本出来后会有通知,也不会直接扣款。注册地址,注册完成之后,官方将提供一个tectonic-preview-license.yaml
证书文件.
部署Tectonic Services
- 下载Tectonic Services模板到本地。文件名为
tectonic-services.yml
。文件内容如下:
apiVersion: v1 kind: Namespace metadata:name: tectonic-system \--- apiVersion: v1 kind: ReplicationController metadata:name: tectonic-managernamespace: tectonic-system spec:replicas: 1selector:tectonic-app: managertemplate:metadata:labels:tectonic-app: managerspec:containers:\- command:- /tectonic-manager#coreos官方镜像仓库下载速度太慢,切换至hub.docker.com#image: quay.io/tectonic/manager:v0.4.1image: shenshouer/manager:v0.4.1name: tectonic-managervolumeMounts:- mountPath: /etc/tectonic-license/name: tectonic-licensevolumes:\- secret:secretName: tectonic-licensename: tectonic-license
将其按功能分裂至两个个文件,起内容分别如下:
命名空间ns-tectonic-system.yaml
:
apiVersion: v1 kind: Namespace metadata:name: tectonic-system
rcrc-tectonic.yaml
:
apiVersion: v1 kind: ReplicationController metadata:name: tectonic-managernamespace: tectonic-system spec:replicas: 1selector:tectonic-app: managertemplate:metadata:labels:tectonic-app: managerspec:containers:- command:- /tectonic-manager#image: quay.io/tectonic/manager:v0.4.1image: shenshouer/manager:v0.4.1name: tectonic-managervolumeMounts:- mountPath: /etc/tectonic-license/name: tectonic-licensevolumes:- secret:secretName: tectonic-licensename: tectonic-license
- 提交配置文件至集群中
$ kubectl create -f ns-tectonic-system.yaml namespaces/tectonic-system $ kubectl get namespace NAME LABELS STATUS default Active kube-system Active tectonic-system Active $ kubectl create -f rc-tectonic.yml replicationcontrollers/tectonic-manager
当执行上传操作之后,发现情况不是怎么理想:
sope:wk goyoo$ kubectl get po -o wide --namespace=tectonic-system NAME READY STATUS RESTARTS AGE NODE tectonic-manager-o26wr 0/1 Image: shenshouer/manager:v0.4.1 is ready, container is creating 0 1m 172.17.4.201 sope:wk goyoo$
发现镜像已经拉下来了,但始终没有启动。
在git下载的工作目录中使用vagrant ssh w1
登陆到从节点上查看kuberlet日志信息:
core@w1 /etc/systemd/system $ journalctl -fu kubelet.service -- Logs begin at Wed 2015-09-23 07:32:19 UTC. -- Sep 23 11:04:15 w1 kubelet[1227]: E0923 11:04:15.953220 1227 pod_workers.go:111] Error syncing pod c283b0ee-61e2-11e5-a0e9-080027df9088, skipping: secrets "tectonic-license" not found Sep 23 11:04:25 w1 kubelet[1227]: E0923 11:04:25.938468 1227 secret.go:127] Couldn't get secret tectonic-system/tectonic-license Sep 23 11:04:25 w1 kubelet[1227]: E0923 11:04:25.938468 1227 kubelet.go:1190] Unable to mount volumes for pod "tectonic-manager-1s3g1_tectonic-system": secrets "tectonic-license" not found; skipping pod Sep 23 11:04:25 w1 kubelet[1227]: E0923 11:04:25.955782 1227 pod_workers.go:111] Error syncing pod c283b0ee-61e2-11e5-a0e9-080027df9088, skipping: secrets "tectonic-license" not found Sep 23 11:04:35 w1 kubelet[1227]: E0923 11:04:35.968190 1227 secret.go:127] Couldn't get secret tectonic-system/tectonic-license Sep 23 11:04:35 w1 kubelet[1227]: E0923 11:04:35.969397 1227 kubelet.go:1190] Unable to mount volumes for pod "tectonic-manager-1s3g1_tectonic-system": secrets "tectonic-license" not found; skipping pod Sep 23 11:04:35 w1 kubelet[1227]: E0923 11:04:35.972750 1227 pod_workers.go:111] Error syncing pod c283b0ee-61e2-11e5-a0e9-080027df9088, skipping: secrets "tectonic-license" not found Sep 23 11:04:45 w1 kubelet[1227]: E0923 11:04:45.973012 1227 secret.go:127] Couldn't get secret tectonic-system/tectonic-license Sep 23 11:04:45 w1 kubelet[1227]: E0923 11:04:45.975243 1227 kubelet.go:1190] Unable to mount volumes for pod "tectonic-manager-1s3g1_tectonic-system": secrets "tectonic-license" not found; skipping pod Sep 23 11:04:45 w1 kubelet[1227]: E0923 11:04:45.990232 1227 pod_workers.go:111] Error syncing pod c283b0ee-61e2-11e5-a0e9-080027df9088, skipping: secrets "tectonic-license" not found Sep 23 11:04:55 w1 kubelet[1227]: E0923 11:04:55.974708 1227 secret.go:127] Couldn't get secret tectonic-system/tectonic-license Sep 23 11:04:55 w1 kubelet[1227]: E0923 11:04:55.975346 1227 kubelet.go:1190] Unable to mount volumes for pod "tectonic-manager-1s3g1_tectonic-system": secrets "tectonic-license" not found; skipping pod Sep 23 11:04:55 w1 kubelet[1227]: E0923 11:04:55.988686 1227 pod_workers.go:111] Error syncing pod c283b0ee-61e2-11e5-a0e9-080027df9088, skipping: secrets "tectonic-license" not found Sep 23 11:05:05 w1 kubelet[1227]: E0923 11:05:05.970709 1227 secret.go:127] Couldn't get secret tectonic-system/tectonic-license Sep 23 11:05:05 w1 kubelet[1227]: E0923 11:05:05.973035 1227 kubelet.go:1190] Unable to mount volumes for pod "tectonic-manager-1s3g1_tectonic-system": secrets "tectonic-license" not found; skipping pod Sep 23 11:05:05 w1 kubelet[1227]: E0923 11:05:05.990815 1227 pod_workers.go:111] Error syncing pod c283b0ee-61e2-11e5-a0e9-080027df9088, skipping: secrets "tectonic-license" not found
从日志信息中可以看出此时需要tectonic-license
。提交注册是下载的tectonic-preview-license.yaml
文件到集群,提交之前先删除之前提交的rc.
$ kubectl delete -f rc-tectonic.yaml replicationcontrollers/tectonic-manager $ kubectl create -f tectonic-preview-license.yaml secrets/tectonic-license
secret已经创建成功,后再创建Tectonic Services服务:
$ kubectl get secret --all-namespaces NAMESPACE NAME TYPE DATA default default-token-oqsu6 kubernetes.io/service-account-token 2 kube-system default-token-sl65x kubernetes.io/service-account-token 2 tectonic-system default-token-p9pmu kubernetes.io/service-account-token 2 $ kubectl create -f rc-tectonic.yaml
安装Tectonic Services需要kubernetes的全部特性,并且会自动在kubernetes集群中安装tectonic-console与tectonic-support的容器服务。这两个容器服务支持也是从coreos的官方镜像仓库下载,速度非常缓慢。
当Tectonic Services启动完成之后会有如下几个服务容器:
sope:wk goyoo$ kubectl get po -o wide --namespace=tectonic-system NAME READY STATUS RESTARTS AGE NODE tectonic-console-b2u6o 1/1 Running 2 14h 172.17.4.201 tectonic-manager-oh3pi 1/1 Running 0 14h 172.17.4.201 tectonic-support-w0dia 1/1 Running 0 14h 172.17.4.201
暴露Tectonic Console到浏览器
默认情况下Tectonic Console没有暴露到集群之外,为了达到这个目的需要创建一个kubernetes service来进行。此过程有两个方法:
1. 使用NodePort
2. 使用LoadBalancer
使用NodePort方式
参考模板tectonic-console-public.yml
,其内容如下:
apiVersion: v1 kind: Service metadata:name: tectonic-console-publicnamespace: tectonic-system spec:type: NodePortports:- port: 80nodePort: 32000protocol: TCPname: tectonic-console-exposeselector:tectonic-app: consoletectonic-component: ui
创建kubernetes服务:
sope:wk goyoo$ kubectl --namespace=tectonic-system create -f tectonic-console-public.yml You have exposed your service on an external port on all nodes in your cluster. If you want to expose this service to the external internet, you may need to set up firewall rules for the service port(s) (tcp:32000) to serve traffic. See http://releases.k8s.io/HEAD/docs/user-guide/services-firewalls.md for more details. services/tectonic-console-public
然后就可以通过在浏览器中打开http://[host]:32000
访问了,其中host是任何一个在集群中的worker节点,在本例子中只有一个worker节点即w1,其对外ip地址为172.17.4.201
访问效果如下图所示:
使用LoadBalancer
参考模板tectonic-console-cloud.yml
,其内容如下:
apiVersion: v1 kind: Service metadata:name: tectonic-console-publicnamespace: tectonic-system spec:type: LoadBalancerports:- port: 80protocol: TCPname: tectonic-console-exposeselector:tectonic-app: consoletectonic-component: ui
注意:如果没有提供云配置资质,此服务可以创建,但 cloud load balancer服务不会创建。在本地虚拟机测试建议使用使用NodePort方式
方法。
$ kubectl --namespace=tectonic-system create -f tectonic-console-cloud.yml services/tectonic-console-cloud
部署Tectonic服务到kubernetes集群相关推荐
- 使用Kubespray部署生产可用的Kubernetes集群(1.11.2)
Kubernetes的安装部署是难中之难,每个版本安装方式都略有区别.笔者一直想找一种支持多平台 .相对简单 .适用于生产环境 的部署方案.经过一段时间的调研,有如下几种解决方案进入笔者视野: 部署方 ...
- Cloud Toolkit 部署应用到 EDAS Kubernetes 集群
1.在 IntelliJ IDEA 上单击 Cloud Toolkit 的图标,在下拉列表中选择 Deploy to EDAS -> EDAS for Kubernetes Applicatio ...
- ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三
在上文ASP.NET Core应用程序容器化.持续集成与Kubernetes集群部署(二)中,我介绍了如何使用Azure DevOps为ASP.NET Core应用程序案例:tasklist搭建持续集 ...
- 想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中
摘要:Kubernetes 很多看起来比较"繁琐"的设计的主要目的,都是希望为开发者提供更多的"可扩展性",给使用者带来更多的"稳定性"和& ...
- 使用 ezctl 工具部署和管理 Kubernetes 集群
1 ezctl 命令行介绍 kubeasz 项目致力于快速部署高可用的 Kubernetes 集群,同时也提供了关于 Kubernetes 详细的学习资料,在这里强烈推荐给初学者.kubeasz 项目 ...
- 管理数百个Kubernetes集群需要什么?
运行和管理数百个Kubernetes集群需要什么?这就是本文分享的内容.下面,我们一起来看. 要点: 部署一个具备生产就绪所需所有依赖关系的Kubernetes集群需要数天时间. 如果不自动化这个过程 ...
- 如何在CentOS上创建Kubernetes集群
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由编程男孩 发表于云+社区专栏 介绍 Kubernetes(常简称为K8s)是用于自动部署.扩展和管理容器化(containerized ...
- 容器集群k8s从入门到精通实战第一天 kubernetes集群简介及其实例
第一章 kubernetes介绍 本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署 ...
- 云原生第4课:Kubernetes 集群管理
本篇文章来自<华为云云原生王者之路训练营>黄金系列课程第4课,由华为云Kubernetes容器平台技术专家Alan主讲,详细介绍Kubernetes集群和Kubernetes节点的生命周期 ...
最新文章
- 如何用最强模型BERT做NLP迁移学习?
- 【赠书】21世纪科技竞争的核心是超级智能的控制权
- 初识linux以及bash的部分使用及技巧
- 约瑟夫环的问题--剑指 Offer 62. 圆圈中最后剩下的数字
- X3D.Studio编辑器界面介绍
- Windows系统优化12个默认设置
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设置浮动和偏移
- cad镜像后标注尺寸数字反了_CAD画法大全
- 886C. Petya and Catacombs#墓室探险(set集合)
- 文献阅读 Fully Convolutional Networks for Semantic Segmentation
- 以撒的结合:胎衣+(启示录Revelations MOD)不起作用失效(道具可以捡但是没作用失效等)
- Java 八大排序算法
- Error: label vector and instance matrix must be double的解决方法
- Cannot access a disposed object. A common cause of this error is disposing a context that was resolv
- 什么是数据安全,为什么它很重要?
- uva11386 Triples
- VRCHAT——SDK3
- excel基础(一)
- IoTHub | 云到设备通信指南
- 汽轮机振动的日平均峰峰值的BP神经网络预测matlab仿真