前提条件

已经部署完成并可运行kubernetes集群,如果没有请参考基于Vagrant CoreOS的kubernetes一键部署
需要注册Tectonic账号时提供的tectonic-license.

目前处于技术预览版,所有注册与使用都是免费的,但注册是必须提供信用卡信息。不会扣钱,当正式版本出来后会有通知,也不会直接扣款。注册地址,注册完成之后,官方将提供一个tectonic-preview-license.yaml证书文件.

部署Tectonic Services

  1. 下载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
  1. 提交配置文件至集群中
$ 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集群相关推荐

  1. 使用Kubespray部署生产可用的Kubernetes集群(1.11.2)

    Kubernetes的安装部署是难中之难,每个版本安装方式都略有区别.笔者一直想找一种支持多平台 .相对简单 .适用于生产环境 的部署方案.经过一段时间的调研,有如下几种解决方案进入笔者视野: 部署方 ...

  2. Cloud Toolkit 部署应用到 EDAS Kubernetes 集群

    1.在 IntelliJ IDEA 上单击 Cloud Toolkit 的图标,在下拉列表中选择 Deploy to EDAS -> EDAS for Kubernetes Applicatio ...

  3. ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(三

    在上文ASP.NET Core应用程序容器化.持续集成与Kubernetes集群部署(二)中,我介绍了如何使用Azure DevOps为ASP.NET Core应用程序案例:tasklist搭建持续集 ...

  4. 想提高运维效率,那就把MySQL数据库部署到Kubernetes 集群中

    摘要:Kubernetes 很多看起来比较"繁琐"的设计的主要目的,都是希望为开发者提供更多的"可扩展性",给使用者带来更多的"稳定性"和& ...

  5. 使用 ezctl 工具部署和管理 Kubernetes 集群

    1 ezctl 命令行介绍 kubeasz 项目致力于快速部署高可用的 Kubernetes 集群,同时也提供了关于 Kubernetes 详细的学习资料,在这里强烈推荐给初学者.kubeasz 项目 ...

  6. 管理数百个Kubernetes集群需要什么?

    运行和管理数百个Kubernetes集群需要什么?这就是本文分享的内容.下面,我们一起来看. 要点: 部署一个具备生产就绪所需所有依赖关系的Kubernetes集群需要数天时间. 如果不自动化这个过程 ...

  7. 如何在CentOS上创建Kubernetes集群

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由编程男孩 发表于云+社区专栏 介绍 Kubernetes(常简称为K8s)是用于自动部署.扩展和管理容器化(containerized ...

  8. 容器集群k8s从入门到精通实战第一天 kubernetes集群简介及其实例

    第一章 kubernetes介绍 本章节主要介绍应用程序在服务器上部署方式演变以及kubernetes的概念.组件和工作原理. 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署 ...

  9. 云原生第4课:Kubernetes 集群管理

    本篇文章来自<华为云云原生王者之路训练营>黄金系列课程第4课,由华为云Kubernetes容器平台技术专家Alan主讲,详细介绍Kubernetes集群和Kubernetes节点的生命周期 ...

最新文章

  1. 如何用最强模型BERT做NLP迁移学习?
  2. 【赠书】21世纪科技竞争的核心是超级智能的控制权
  3. 初识linux以及bash的部分使用及技巧
  4. 约瑟夫环的问题--剑指 Offer 62. 圆圈中最后剩下的数字
  5. X3D.Studio编辑器界面介绍
  6. Windows系统优化12个默认设置
  7. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设置浮动和偏移
  8. cad镜像后标注尺寸数字反了_CAD画法大全
  9. 886C. Petya and Catacombs#墓室探险(set集合)
  10. 文献阅读 Fully Convolutional Networks for Semantic Segmentation
  11. 以撒的结合:胎衣+(启示录Revelations MOD)不起作用失效(道具可以捡但是没作用失效等)
  12. Java 八大排序算法
  13. Error: label vector and instance matrix must be double的解决方法
  14. Cannot access a disposed object. A common cause of this error is disposing a context that was resolv
  15. 什么是数据安全,为什么它很重要?
  16. uva11386 Triples
  17. VRCHAT——SDK3
  18. excel基础(一)
  19. IoTHub | 云到设备通信指南
  20. 汽轮机振动的日平均峰峰值的BP神经网络预测matlab仿真

热门文章

  1. 微信公众号h5的分享功能
  2. 力扣 2154. 将找到的值乘以 2
  3. 拿不到21.6万年薪退全款,廖雪峰大数据开发课程招生啦
  4. qt 定义一个长度的数组_Qt设计器:创建控件数组
  5. CDN加速原理及步骤
  6. Python类型判断
  7. css金币动画_用纯CSS3制作的金币(铜币 | 钱币)
  8. 安卓手机续航测试软件,横评,在路上2人气安卓旗舰续航测试:结果竟然是!
  9. hdu 4489 The King’s Ups and Downs
  10. HIEE300024R4 UAA326A04什么是反馈和前馈控制系统?