在Azure上使用CoreOS和Weave的 Kubernetes
2021-03-08 06:28
标签:地方 started docke wrap 环境 example tty hub 这一 在本指南中我将演示如何在Azure云端部署Kubernetes集群。您将使用CoreOS与Weave,Weave以透明而可靠的方式实现了简单、安全的网络。本指南的目的是提供一个即开即装即用的实现方法,以便最终可以稍加改变就可以投入到生产环境中。本文将演示如何提供一个专门的Kubernetes主节点和ETCD节点,并展示如何轻松地扩展集群。 1.您需要一个Azure账号。 开始之前,您需要checkout下代码: 您需要在您的机器上安装Node.js,如果您之前使用过Azure CIL,那么您应该已经安装了。 首先,您需要安装一些依赖: 现在,您需要做的是: 这个脚本会提供适用于生产环境的集群,集群中有一个3个专用的ETCD节点形成环形:1个kubernetes主节点和2个kubernetes节点。KUBE-00虚拟机将是主节点,您的工作负荷只会部署在KUBE-01节点和KUBE-02节点上。最初,所有的虚拟机都是单核的,以确保自由层的用户无需额外的代价就可以复制它。稍后我将展示如何添加更多更大的虚拟机。 一旦Azure虚拟机创建完成,你应该可以看到下面这样的信息: 像下面这样登陆进主节点: 注:配置文件名字可能有所不同,确保使用你所看到的那个。 检查一下集群中的两个节点: 现在让我们按照Guestbook的实例来部署: 您需要等待pod部署完成,然后执行下面的命令,等待STATUS 从Pending变为Running: 注:大部分的时间将会花在下载每个节点的Docker容器镜像上。 最后您将会看到: 两个单核的节点肯定是无法满足现如今的生产系统,让我们通过添加几个更大的节点来扩展集群。 您需要再打开一个您机器上的终端窗口,进入相同的工作目录(也就是说这个目录:~/Workspace/kubernetes/docs/getting-started-guides/coreos/azure/) 首先,让我们设置一下新虚拟机的大小: 现在,我们使用先前部署的状态文件和添加的一系列节点来运行扩展脚本: 注:这一步在 ./output 下产生了一些新文件。 回到kube-00: 您可以看到又有两个节点顺利地加入进来,现在,让我们来扩展Guestbook实例的数量。 首先,再次检查一下有多少replication controller: 基于现在有四个节点,让我们进行相应地扩展: 现在,再来检查下: 现在,您已经拥有了更多的前端Guestbook和redis slave实例。如果您查看一下所有 name=fronted 的节点,您会看到每个节点上都运行着一个实例。 Kubernetes 1.0 中没有原生的Azure负载均衡器,不过,下面演示了如何将Guestbook应用暴露给Internet。 然后,您就可以通过上面所展示的kube-00的Azure虚拟ip(在我的例子中,也就是指http://137.117.156.164/),在任何地方连接它。 现在您已经拥有一个运行在Azure上规模性的集群,祝贺! 或许,您应该尝试部署其他的应用示例,或者动手写一个自己的。 如果您不希望顾虑Azure的费用问题,您可以移除集群。正如您看到的,移除它非常简单: 注:确保使用最新的状态文件,因为扩展之后生成了新的文件。 顺便说一下,如果您喜欢,您可以使用文中所示脚本部署多个集群。 在Azure上使用CoreOS和Weave的 Kubernetes 标签:地方 started docke wrap 环境 example tty hub 这一 原文地址:https://www.cnblogs.com/guarderming/p/12876799.html介绍
前提条件
开始吧!
git clone https://github.com/kubernetes/kubernetes
cd kubernetes/docs/getting-started-guides/coreos/azure/
npm install
./azure-login.js -u
...
azure_wrapper/info: Saved SSH config, you can use it like so: `ssh -F ./output/kube_1c1496016083b4_ssh_azure_wrapper/info: The hosts in this deployment are:
[ ‘etcd-00‘, ‘etcd-01‘, ‘etcd-02‘, ‘kube-00‘, ‘kube-01‘, ‘kube-02‘ ]
azure_wrapper/info: Saved state into `./output/kube_1c1496016083b4_deployment.yml`
ssh -F ./output/kube_1c1496016083b4_ssh_conf kube-00
core@kube-00 ~ $ kubectl get nodes
NAME LABELS STATUS
kube-01 kubernetes.io/hostname=kube-01 Ready
kube-02 kubernetes.io/hostname=kube-02 Ready
部署工作负载
kubectl create -f ~/guestbook-example
kubectl get pods --watch
NAME READY STATUS RESTARTS AGE
frontend-0a9xi 1/1 Running 0 4m
frontend-4wahe 1/1 Running 0 4m
frontend-6l36j 1/1 Running 0 4m
redis-master-talmr 1/1 Running 0 4m
redis-slave-12zfd 1/1 Running 0 4m
redis-slave-3nbce 1/1 Running 0 4m
扩展
export AZ_VM_SIZE=Large
core@kube-00 ~ $ ./scale-kubernetes-cluster.js ./output/kube_1c1496016083b4_deployment.yml 2
...
azure_wrapper/info: Saved SSH config, you can use it like so: `ssh -F ./output/kube_8f984af944f572_ssh_azure_wrapper/info: The hosts in this deployment are:
[ ‘etcd-00‘,
‘etcd-01‘,
‘etcd-02‘,
‘kube-00‘,
‘kube-01‘,
‘kube-02‘,
‘kube-03‘,
‘kube-04‘ ]
azure_wrapper/info: Saved state into `./output/kube_8f984af944f572_deployment.yml`
core@kube-00 ~ $ kubectl get nodes
NAME LABELS STATUS
kube-01 kubernetes.io/hostname=kube-01 Ready
kube-02 kubernetes.io/hostname=kube-02 Ready
kube-03 kubernetes.io/hostname=kube-03 Ready
kube-04 kubernetes.io/hostname=kube-04 Ready
core@kube-00 ~ $ kubectl get rc
ONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
frontend php-redis kubernetes/example-guestbook-php-redis:v2 name=frontend 3
redis-master master redis name=redis-master 1
redis-slave worker kubernetes/redis-slave:v2 name=redis-slave 2
core@kube-00 ~ $ kubectl scale --replicas=4 rc redis-slave
>>>>>>> coreos/azure: Updates for 1.0
scaled
core@kube-00 ~ $ kubectl scale --replicas=4 rc frontend
scaled
core@kube-00 ~ $ kubectl get rc
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
frontend php-redis kubernetes/example-guestbook-php-redis:v2 name=frontend 4
redis-master master redis name=redis-master 1
redis-slave worker kubernetes/redis-slave:v2 name=redis-slave 4
core@kube-00 ~/guestbook-example $ kubectl get pods -l name=frontend
NAME READY STATUS RESTARTS AGE
frontend-0a9xi 1/1 Running 0 22m
frontend-4wahe 1/1 Running 0 22m
frontend-6l36j 1/1 Running 0 22m
frontend-z9oxo 1/1 Running 0 41s
将应用暴露给外部
./expose_guestbook_app_port.sh ./output/kube_1c1496016083b4_ssh_conf
Guestbook app is on port 31605, will map it to port 80 on kube-00
info: Executing command vm endpoint create
+ Getting virtual machines
+ Reading network configuration
+ Updating network configuration
info: vm endpoint create command OK
info: Executing command vm endpoint show
+ Getting virtual machines
data: Name : tcp-80-31605
data: Local port : 31605
data: Protcol : tcp
data: Virtual IP Address : 137.117.156.164
data: Direct server return : Disabled
info: vm endpoint show command OK
接下来
移除…
./destroy-cluster.js ./output/kube_8f984af944f572_deployment.yml
文章标题:在Azure上使用CoreOS和Weave的 Kubernetes
文章链接:http://soscw.com/index.php/essay/61688.html