求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 
 

Kubernetes教程
Kubernetes概述
Kubernetes设计架构
kubernetes设计理念
创建Kubernetes集群
基于Docker本地运行Kubernetes
使用Vagrant
本地运行Kubrenetes v1.0
Google Computer Engine入门
AWS EC2快速入门
在Azure上使用CoreOS和Weave的 Kubernetes
从零开始k8s
CoreOS部署Kubernetes集群
CloudStack部署Kubernetes集群
vSphere部署Kubernetes集群
Ferdora部署Kubernetes集群
CentOS部署Kubernetes集群
Ubuntu物理节点上部署Kubernets集群
Mesos部署Kubernetes集群
Kubernetes用户指南:应用程序管理
名词解释 Pods
名词解释 Labels
名词解释:Namespace
名词解释 Replication Controller
名词解释:Node
名词解释:ReplicaSets
名词解释 Services
名词解释 Volumes
名词解释:PV/PVC/StorageClass
名称解释:Deployment
名词解释:Secret
名词解释:StatefulSet
名词解释:DaemonSet
名词解释:Service Account
名词解释:CronJob
名词解释:Job
名词解释:Security Context和PSP
名词解释:Resource Quotas
名词解释:Network Policy
名词解释:Ingress
名词解释:ThirdPartyResources
名词解释:ConfigMap
名词解释:PodPreset
配置Kubernetes
管理应用:部署持续运行的应用
Horizontal Pod Autoscaling
管理应用:连接应用
管理应用: 在生产环境中使用Pods和容器
Kubernetes UI
Kube-API Server
授权插件
认证插件
API Server端口配置
Admission Controller
Service Accounts集群管理指南
使用Kubernetes在云上原生部署cassandra
Spark例子
Storm 示例
示例: 分布式任务队列 Celery, RabbitMQ和Flower
Kubernetes在Hazelcast平台上部署原生云应用
Meteor on Kuberenetes
配置文件使用入门
环境向导示例
在Kubernetes上运行你的第一个容器
kubectl
安装和设置kubectl
kubectl annotate
kubectl api-versions
kubectl apply
kubectl attach
kubectl cluster-info
kubectl config
kubectl config set-cluster
kubectl config set-context
kubectl config set-credentials
kubectl config set
kubectl config unset
kubectl config use-context
kubectl config view
kubectl create
kubectl delete
kubectl describe
kubectl edit
kubectl exec
kubectl logs
kubectl version
故障排查
应用程序相关的故障排查
 
 

CloudStack部署Kubernetes集群
 
1466 次浏览
62次  

简介

CloudStack是一个用于构建基于硬件虚拟化的公有云和私有云(传统IaaS)的软件。在CloudStack 上部署 Kubernetes 有好几种方法,需要根据 CloudStack 所使用的哪种云和有哪些可用镜像来决定。 例如 Exoscale 就提供了一个 coreOS 的可用模版,因此也可以使用在coreOS 部署 Kubernetes 的指令来部署。 CloudStack 同样也提供了一个 Vagrant 插件,因此也可以用 Vagrant 来部署 Kubernetes ,既可以选择原有的基于 shell 脚本的部署方式,也可以选择新的基于 Salt 的部署方式。

CloudStack的 CoreOS 模版会每日构建。 在执行安装 Kubernetes 部署指令之前需要先将模版注册到云上。

本指引使用了Ansible playbook。 完全自动化构建,单个 Kubernetes 部署脚本基于 coreOS指令构建。

Ansible 脚本基于 coreOS 镜像将 Kubernetes 部署到 CloudStack 基础云上。 该脚本创建一个SSH密钥对、一个安全组和相关规则并最终通过云初始化配置来启动coreOS实例。

前提条件

$ sudo apt-get install -y python-pip
$ sudo pip install ansible
$ sudo pip install cs

cs 是一个 CloudStack API 的 python 模块。

可以通过使用API密钥和HTTP的方式来配置CloudStack终端。

你可以将它们定义成环境变量: CLOUDSTACK_ENDPOINT , CLOUDSTACK_KEY , CLOUDSTACK_SECRET和 CLOUDSTACK_METHOD .

或者通过创建 ~/.cloudstack.ini 文件的方式:

[cloudstack]
endpoint = <your cloudstack api endpoint>
key = <your api access key>
secret = <your api secret key>
method = post

我们需要使用 http POST 请求来将 large 用户的数据上传到各个coreOS实例。

克隆脚本

$ git clone --recursive https://github.com/runseb/ansible-kubernetes.git
$ cd ansible-kubernetes

ansible-cloudstack 模块被设置成了该仓库的一个子模块,因此需要使用 –recursive 。

创建一个 Kubernetes 集群

你只需要简单运行如下脚本。

$ ansible-playbook k8s.yml

编辑 k8s.yml 文件中的一些变量。

vars:
ssh_key: k8s
k8s_num_nodes: 2
k8s_security_group_name: k8s
k8s_node_prefix: k8s2
k8s_template: Linux CoreOS alpha 435 64-bit 10GB Disk
k8s_instance_type: Tiny

它将启动一个 Kubernetes 主机和一些计算节点(默认为2个)。 instance_type 和 template 默认指定的是 exoscale,编辑这两个参数来指定你CloudStack云的模板和实例类型(即服务提供商)。

如果你想修改一些其他参数的话,请参照 roles/k8s 里面的任务和模版。

一旦脚本执行完成,命令行会打印出Kubernetes主机的IP地址:

TASK: [k8s | debug msg='k8s master IP is {{ k8s_master.default_ip }}'] ********

使用 core 用户和刚创建的密钥通过ssh登录到主机,你可以列出集群中的所有机器:

$ ssh -i ~/.ssh/id_rsa_k8s core@<master IP>
$ fleetctl list-machines
MACHINE IP METADATA
a017c422... <node #1 IP> role=node
ad13bf84... <master IP> role=master
e9af8293... <node #2 IP> role=node

您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



1466 次浏览
62次
 捐助