Kubernetes 1 3 从入门到进阶 安装篇(2)

Kubernetes 1.3 从入门到进阶 安装篇: kubernetes-ansible

上一篇文章我们介绍了使用minikube快速部署kubernetes1.3到单机上. 多台机器构成的集群,本次介绍kubernetes-ansible来进行安装。ansible是自动化部署一大神器,接下来就让我们来看看使用神器的效果吧。

构成说明

master和etcd共用一台机器,只有一个minion的超级mini构成,只是为演示只用。

No type IP OS
1 master 192.168.32.31 CENTOS7.2
2 etcd 192.168.32.31 CENTOS7.2
3 minion 192.168.32.32 CENTOS7.2

Step 1:安装ansible

在192.168.32.31上安装ansible

[root@host31 local]# yum -y install epel-release
[root@host31 local]# yum -y install ansible
  • 1
  • 2

确认安装

[root@host31 local]# ansible --version
ansible 2.1.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
[root@host31 local]#
  • 1
  • 2
  • 3
  • 4
  • 5

Step 2:设定ssh通路和ansible

分别在两台机器上生成ssh的key

[root@host31 ~]# ssh-keygen
[root@host32 ~]# ssh-keygen
  • 1
  • 2

设定2台机器的/etc/hosts

[root@host31 ~]# grep host3 /etc/hosts
192.168.32.31 host31
192.168.32.32 host32
[root@host31 ~]#
[root@host32 ~]# grep host3 /etc/hosts
192.168.32.31 host31
192.168.32.32 host32
[root@host32 ~]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在2台机器上都作如下设定,保证ssh通路畅通

# ssh-copy-id -i host31
# ssh-copy-id -i host32
  • 1
  • 2

在ansible所安装的机器上,追加机器信息到/etc/ansible/hosts中

[root@host31 ansible]# grep host3 /etc/ansible/hosts
host31
host32
[root@host31 ansible]#
  • 1
  • 2
  • 3
  • 4

确认ansible正常动作

[root@host31 ~]# ansible localhost -m ping
localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
[root@host31 ~]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Step 3:下载contrib

contrib里面有kubernets生态中很多有用的组件,但不属于kubernetes的core的部分。首先我们使用git从https://github.com/kubernetes/contrib上clong下来整个contrib,而用来方便安装的kubernetes-ansible,只是其中的一个部分:https://github.com/kubernetes/contrib/tree/master/ansible

[[email protected] local]# cd ..
[[email protected] /]# mkdir -p /local; cd /local
[[email protected] local]# git clone https://github.com/kubernetes/contrib.git
Cloning into ‘contrib‘...
remote: Counting objects: 27980, done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 27980 (delta 13), reused 0 (delta 0), pack-reused 27940
Receiving objects: 100% (27980/27980), 30.05 MiB | 173.00 KiB/s, done.
Resolving deltas: 100% (13411/13411), done.
[[email protected] local]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Step 4:生成kubernetes-ansible设定文件

按照构成说明中的2台机器构成,设定inventory文件

[[email protected] ansible]# pwd
/local/contrib/ansible
[[email protected] ansible]# ll
total 28
-rw-r--r--.  1 root root 1630 Jul 29 08:09 deploy-cluster.yml
drwxr-xr-x.  2 root root   20 Jul 29 08:09 group_vars
-rw-r--r--.  1 root root  115 Jul 29 08:09 inventory.example.ha
-rw-r--r--.  1 root root  156 Jul 29 08:09 inventory.example.single_master
drwxr-xr-x.  3 root root   18 Jul 29 08:09 playbooks
-rw-r--r--.  1 root root 2207 Jul 29 08:09 README.md
drwxr-xr-x. 15 root root 4096 Jul 29 08:09 roles
-rwxr-xr-x.  1 root root  711 Jul 29 08:09 setup.sh
drwxr-xr-x.  2 root root 4096 Jul 29 08:09 vagrant
[[email protected] ansible]# cp inventory.example.ha inventory
[[email protected] ansible]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

将inventory文件的内容设定为如下

[[email protected] ansible]# cat inventory

[masters]
host31

[etcd:children]
host31

[nodes]
host32
[[email protected] ansible]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Step 6:安装所需package

依赖关系整理的真不错,只有一个package在github的说明中虽然没有提到,但是实际是需要提前安装的

No package 机器 安装命令
1 python-netaddr 192.168.32.31 yum -y install python-netaddr

Step 7:执行安装文件

执行安装文件setup.sh

[root@host31 ansible]# pwd
/local/contrib/ansible
[root@host31 ansible]# ./setup.sh
  • 1
  • 2
  • 3

Step 8:确认kubernetes

确认node

[root@host31 ansible]# kubectl get nodes
NAME      STATUS    AGE
host31    Ready     1m
host32    Ready     1m
[root@host31 ansible]#
  • 1
  • 2
  • 3
  • 4
  • 5

确认services

[root@host31 ansible]# kubectl get services
NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   10.254.0.1   <none>        443/TCP   12m
[root@host31 ansible]#
  • 1
  • 2
  • 3
  • 4

确认版本

[[email protected] ansible]# kubectl version
Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"a4463d9a1accc9c61ae90ce5d314e248f16b9f05", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"a4463d9a1accc9c61ae90ce5d314e248f16b9f05", GitTreeState:"clean"}
[[email protected] ansible]#
  • 1
  • 2
  • 3
  • 4

吐槽: 居然是1.2,再到github上仔细一看,四个月没有更新了。是要放弃kubernetes-ansible转用minikube的意图么,对我们来说明明非常友好可用的东西,不像minikube有问题了的话只能眼巴巴地看着它那个go语言的二进制文件,眼睁睁的看着它取个版本信息都要联一下google。对1.2和1.3之间区别不是特别在意的朋友,严重推荐此种方式进行安装,甚至生产环境或者测试环境也完全可以在此基础上进行定制和改进安装与部署。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

原文地址:https://www.cnblogs.com/firsttry/p/10294035.html

时间: 2024-08-13 21:37:46

Kubernetes 1 3 从入门到进阶 安装篇(2)的相关文章

Kubernetes 1 3 从入门到进阶 安装篇(1)

Kubernetes 1.3 从入门到进阶 安装篇:minikube Kubernetes单机运行环境一直是一个没有得到重视的问题.现在我们有了minikube,一个用go语言开发的可以在本地运行kubernetes的利器,不过目前应该只是支持kubernetes1.3.如果你只有一台机器或者虚拟机又想试验一下Kubernetes的新的功能,或者作kubernetes上开发的本地环境,minikube可能是你不错的选择. 下载minikube并设定 下载的时候突然发现版本已经是0.7.0了,发现

Kubernetes(k8s)入门、单机版安装、kuberctl指令、k8s服务实例

https://blog.csdn.net/qq_34701586/article/details/78732470 原文地址:https://www.cnblogs.com/hongdada/p/9255182.html

在线培训 | Kubernetes部署与使用入门

容器技术凭借其轻量化和快速部署的特性,被越来越多企业开发者赞誉,近两年来发展态势可谓炙手可热. 去年一年,Kubernetes的流行度持续快速上升,我们有理由相信在不远的未来,Kubernetes将成为通用的基础设施标准. 开源的全栈化企业级容器管理平台Rancher,凭借优异的基础设施服务管理能力和强大的容器协调能力,让用户在生产环境中的容器部署.运行与管理工作变得更加简单.加上Rancher创造性的纳管来自不同基础架构的Kubernetes集群的能力,为企业在生产环境落地Docker与Kub

iptables入门到进阶

Iptables入门到进阶 一.前言 Firewall(防火墙): 隔离工具:Packets Filter Firewall(包过滤防火墙):工作于主机或网络的边缘,对经由的报文根据预先定义的规则(匹配条件)进行检测,对于能够被规则匹配到的报文实行某预定义的处理机制的一套组件: 防火墙类型 从防火墙的实现形式来分的话,防火墙可以分为软件防火墙和硬件防火墙 硬件防火墙:在硬件级别实现部分功能的防火墙:另一个部分功能基于软件实现: 软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙: 从防火

System.Web.Routing入门及进阶 上篇

System.Web.Routing已经作为一个程序集包含在.net3.5sp1中发布了.虽然我们并没有在3.5sp1中发现Asp.net Mvc的踪迹,但是亦以感觉到它离我们不远了. System.Web.Routing用于在Asp.net的Web应用程序中进行URLRouting. 所谓UrlRouting就是将一个地址映射为另一个地址,比如我访问/chsword/2008/08/27.html其实是访问了/chsword/article.aspx?y=2008&m=08&d=27这个

SQL Server AlwaysON从入门到进阶(1)——何为AlwaysON?

本文属于SQL Server AlwaysON从入门到进阶系列文章 本文原文出自Stairway to AlwaysOn系列文章.根据工作需要在学习过程中顺带翻译以供参考.系列文章包含: SQL Server AlwaysON从入门到进阶(1)--何为AlwaysON? SQL Server AlwaysON从入门到进阶(2)--存储 SQL Server AlwaysON从入门到进阶(3)--基础架构 SQL Server AlwaysON从入门到进阶(4)--分析和部署Windows Ser

服务端工程师入门与进阶 Java 版

前言 欢迎加入我们.这是一份针对实习生/毕业生的服务端开发入门与进阶指南.遇到问题及时问你的 mentor 或者直接问我. 建议: 尽量用google查找技术资料. 有问题在stackoverflow找找,大部分都已经有人回答. 多看官方的技术文档. ibm developerworkers的文章质量整体上有保障. 平时花一些时间在github上阅读优秀项目源码. 入门(1-2 个月) 目标:参与简单的项目开发. 技能: 掌握 Java.经典的<Java 核心技术:卷1 基础知识>(或者<

k8s入门系列之扩展组件(一)DNS安装篇

DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统中各服务之间发现与调用. 组件: ?SkyDNS 提供DNS解析服务 ?Etcd 存储DNS信息 ?Kube2sky 监听kubernetes,当有Service创建时,生成相应的记录到SkyDNS. 本文章的实验环境与<k8s入门系列之集群安装篇>介绍中一致.master(1) + node(4

Linux运维高薪入门及进阶全新经典视频-老男孩Linux(免费)

2015年5月21日最新发布,老男孩老师亲讲,全新Linux运维入门经典! 超级难得的linux经典企业级入门实战课程 价格:免费 数量:138节 本linux高薪运维入门及进阶,为入门教学中的基础部分,以简单.易用.高效的方式为初学者讲解如何学好LINUX的核心学习思想,讲解计算机硬件知识,基础命令,Linux基础知识及企业应用场景如何利用硬件优化服务,清晰透彻,超细讲解,适合0基础朋友学习或者相关岗位例如和It打交道的销售,编辑等做为了解linux的入口,也将十分有益!全民互联网时代开始了,