kubernetes Auto Install Guide
1.概念&架构
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. //From Kubernetes 官网//
架构:

对于初学者,k8s[下代指Kubernetes ]可能会被纷繁复杂的概念给弄的晕三到四而失去学习和使用它的信心和机会,这将是十分的糟糕的境遇。
基于此,我封装了现成的VirtualBox镜像可做到"开箱即用"的效果。[k8s的版本为1.7.3]
1.环境准备
k8s master节点的VirtualBox镜像下载地址为:链接:https://pan.baidu.com/s/1nb89qhVKJNH7jwwrNZGpQA 密码:smdv
k8s node 节点的VirtualBox镜像下载地址为:链接:https://pan.baidu.com/s/1vS3frVBn_SJcKOgAI7llZg 密码:52km
VirtualBox虚拟平台下载地址为:VirtualBox下载地址
[特别说明:k8s的master和node节点网络模式均采用桥接方式,并且笔者环境为192.168.35.0/24,故笔者的地址规划如下:
192.168.35.6 k8s-1
192.168.35.7 k8s-2
...
192.168.35.x k8s-y]
封装的虚机地址:username/passwd root/hive
故:使用者在导入虚拟机进入VirtualBox时候,注意三点:1.网卡是否为桥接模式。
2.Linux网卡地址要修改为你所处环境的地址段的可用地址,编辑vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 3.根据环境修改好的地址完成以后,编辑vi /etc/hosts 文件,把里边对应的节点和地址
对应关系做一下更改[master和node节点都需要做更改],达到效果为在master[k8s-1]上ping k8s-1和k8s-2,k8s-y都能ping通。[实际为做地址的解析]],笔者环境为:1master+2node节点。
比如我的环境为:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.35.6 k8s-1
192.168.35.7 k8s-2
192.168.35.8 k8s-3
其中{k8s-1为master节点,k8s-2和k8s-3为node节点}
2.安装前准备
安装完成master节点和node节点以后,并修改完成网卡地址和/etc/hosts下的内容以后,接下来就开始部署k8s环境。
master节点:node节点类似,这里就不做展示。

2.1:启动虚机,进入虚机的CLI[用户名/密码:root/hive],首先查看并修改为你自己网络中合适的IP地址:
master 节点: [root@k8s-1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=7522a09e-4587-42db-a844-a6bf27ec5700
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.35.6
PREFIX=24
GATEWAY=192.168.35.1
DNS1=114.114.114.114
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
node 节点: [root@k8s-2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=1f804f93-7af5-4e31-9e84-9f61c7068f6e
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.35.7
PREFIX=24
GATEWAY=192.168.35.1
DNS1=114.114.114.114
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
2.2修改/etc/hosts下的地址解析。 master节点: vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.35.6 k8s-1
192.168.35.7 k8s-2
192.168.35.8 k8s-3 //根据你自己的刚才配置的master地址和node地址做修改// node 节点: [root@k8s-2 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.35.6 k8s-1
192.168.35.7 k8s-2
192.168.35.8 k8s-3
//根据你自己的刚才配置的master地址和node地址做修改// 修改完以后可以做一下ping测试,看是否加入成功。 Like:ping k8s-1 [root@k8s-1 ~]# ping k8s-1
PING k8s-1 (192.168.35.6) 56(84) bytes of data.
64 bytes from k8s-1 (192.168.35.6): icmp_seq=1 ttl=64 time=0.122 ms
64 bytes from k8s-1 (192.168.35.6): icmp_seq=2 ttl=64 time=0.066 ms
^C
--- k8s-1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.066/0.094/0.122/0.028 ms
3.安装
maseter节点
[root@k8s-1 ~]# ll //查看当前目录下的文件//
total 472496
-rw-------. 1 root root 1058 Mar 14 14:12 anaconda-ks.cfg
-rw-r--r-- 1 root root 387 Mar 15 11:26 demo.yaml
drwxr-xr-x 2 root root 4096 Mar 14 15:44 docker.zip
drwxr-xr-x 8 root root 100 Mar 14 17:08 k8s-v1.7.3
-rw-r--r-- 1 root root 483820627 Mar 14 16:00 k8s-v1.7.3.tar.gz
[root@k8s-1 ~]# tar -xzvf k8s-v1.7.3.tar.gz //解压对应的软件包,笔者这里已经解压,略过//
[root@k8s-1 ~]# cd k8s-v1.7.3 //进入解压完成的软件包中//
[root@k8s-1 k8s-v1.7.3]# ls
config generate.sh image kubectl output repo script
[root@k8s-1 k8s-v1.7.3]# sh generate.sh //执行sh generate.sh 然后会生成output目录//
[root@k8s-1 k8s-v1.7.3]# cd output/ //进入outout目录//
[root@k8s-1 output]# ls //查看master和node软件包//
master node
[root@k8s-1 output]# cd master/ //在master节点上进入master目录中,如果是node节点进入node目录中//
[root@k8s-1 master]# ls
config image init.sh kubectl repo script
[root@k8s-1 master]# sh init.sh //执行sh init.sh即可看到master节点的安装开始//
[root@k8s-1 master]#
node节点:
前边的步骤一样,在output目录中进入node目录来执行sh init.sh来完成node节点的安装。这里就不做赘述了[如果node节点上没有软件包,可以sftp到msater上获取].
特别说明安装完master节点和node节点以后,需要把node节点加入到master中。
使用的命令在master安装的日志扫屏过程中会显示出来: 在node节点上执行:
kubeadm join --token 9cd32b.8e5ada038623035f 192.168.35.6:6443
//备注:如果安装失败,可以多次执行安装脚本,如果提示有文件已经存在的话,按照提示直接删除即可,如果提示文件被占用,可以重启以后再做删除//
4.安装完成以后检查:

访问dashboard:http://192.168.35.6:31000
访问dashboard:http://192.168.35.6:31000

安装完成以后可以尝试deploy一个pod试试。
5.尝试deploy一个pod
demo.yaml文件如下:下载链接:链接:https://pan.baidu.com/s/1FmkbZwsa7Ebhpz9XLaQRcw 密码:7lnn
[root@k8s-1 ~]# less demo.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: demo-deployment
spec:
replicas: 1
selector:
matchLabels:
app: demo
template:
metadata:
labels:
app: demo
spec:
nodeName: k8s-2
containers:
- name: demo
image: mritd/demo
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
#[root@k8s-1 ~]#
#10.2创建一个pod:
#[root@k8s-1 ~]# kubectl create -f demo.yaml
deployment "demo-deployment" created
#[root@k8s-1 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
demo-deployment-2163034595-xtrww 1/1 Running 0 3m
#10.3:pod创建ok以后。创建成功后,创建service。其中--external-ip修改为node节点的IP地址
#[root@k8s-1 ~]# kubectl expose deploy demo-deployment --port=80 --type=LoadBalancer --external-ip=192.168.35.7
service "demo-deployment" exposed
#10.4:检查是否成功。
#[root@k8s-1 ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
po/demo-deployment-2163034595-xtrww 1/1 Running 0 5m
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc/demo-deployment 10.105.179.81 ,192.168.35.7 80:30263/TCP 15s
svc/kubernetes 10.96.0.1 <none> 443/TCP 2d
#10.5:验证:
#[root@k8s-1 ~]#
在浏览器中访问:external-ip[会返回Your container is running!这样一张图片]
到此已经完全部署ok!!!

6.如有疑问
########################################################################
#Date:2018-03-05 Author:BurlyLuo#
#Mail:olaf.luo@foxmail.com Version:v1.0 #
########################################################################
非商业用途转载无需作者授权,但务必在文章标题下面注明作者 罗伟(Burly Luo)以及可点击的本博客地址超级链接 http://www.cnblogs.com/BurlyLuo/,谢谢合作.
kubernetes Auto Install Guide的更多相关文章
- Win10 Theano Install Guide
basic install guide 1. download miniconda 2. conda install libpython mingw 3. conda install theano n ...
- 20181218 - PostgreSQL Auto Commit Guide(自动提交)
20181218 - PostgreSQL Auto Commit Guide 参考官网简介,https://www.postgresql.org/docs/10/ecpg-sql-set-autoc ...
- Fedora 25/24/23 nVidia Drivers Install Guide
https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/ search Most Popular Featured Linux ...
- csvn install guide
一. make sure java install $ java -version $ echo $JAVA_HOME 二. untar tgz file $ tar xf CollabNetSubv ...
- Install guide for OpenLDAP and GOsa 2 on Ubuntu & Debian
First we will install OpenLDAP by running the command as root: apt-get install slapd ldap-utils ldap ...
- freefcw/hustoj Install Guide
First of all, this version hustoj is a skin and improved for https://code.google.com/p/hustoj/. So t ...
- Isilon OneFS Simulator Install Guide
Isilon build for storage data Use VMware converter to convert node1 to ESX(参考silon_OneFS_Simulator_I ...
- Auto Install Workflow Manager 1.0
Write-Host "- Begining Download Service Bus..." Start /W "c:\Program Files\Microsoft\ ...
- [原]Chef_Server and Chef_WorkStation and Chef_Client Install Guide[by haibo]
一.Prerequisite OS : CentOS-7.0-1406-x86_64-DVD.iso Time Server : NTP Server SERVER NAME IP PLAN ...
随机推荐
- 用户不在sudoers 文件中。此事将被报告 or (usermod:“sudo”组不存在)
跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 异常处理汇总-服 务 器 http://www.cnblogs.com/dun ...
- 【Unity3D技术文档翻译】第1.1篇 AssetBundle 工作流
译者前言:本章是关于从创建到加载,再到使用 AssetBundle 的整个流程的概述.阅读本章将对 AssetBundle 的工作流程有个简单而全面的了解. 本章原文所在章节:[Unity Manua ...
- php常用面试知识点
1.php基础 2.mysql基础 3.js基础 4.jq 5.正则 6.面向对象 7.分页类,购物车类,数据库类,上传类,图片处理类 8.smarty模板技术(以及自己写模板引擎) 9.ajax 1 ...
- 基于jquery的城市选择插件
城市选择插件的难度不是很大,主要是对dom节点的操作.而我写的这个插件相对功能比较简答,没有加入省市联动. 上代码好了,参照代码的注释应该比较好理解. /* *基于jquery的城市选择插件 *aut ...
- vim+makefile入门编辑,编译,差错实例
vim+makefile入门编辑,编译,差错实例 vim makefile 编译 编写代码,一般在vim中编辑完后,输入:wq,在命令行下输入g++ hello.cc -o hello ,出现问题,打 ...
- 机器学习之支持向量机(三):核函数和KKT条件的理解
注:关于支持向量机系列文章是借鉴大神的神作,加以自己的理解写成的:若对原作者有损请告知,我会及时处理.转载请标明来源. 序: 我在支持向量机系列中主要讲支持向量机的公式推导,第一部分讲到推出拉格朗日对 ...
- 简单了解下OSI七层模型的作用以及常见网络协议含义和所用端口
OSI七层模型及每层的作用 包括:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层物理层用来建立.维护.断开物理连接数据链路层建立逻辑链接.进行硬件地址寻址.差错校验等功能网络层进行逻辑地址 ...
- SIFT解析(三)生成特征描述子
以上两篇文章中检测在DOG空间中稳定的特征点,lowe已经提到这些特征点是比Harris角点等特征还要稳定的特征.下一步骤我们要考虑的就是如何去很好地描述这些DOG特征点. 下面好好说说如何来描述这些 ...
- php留言板
这个小项目的学习,就这样结束啦.由于过程中需要使用到js,这个目前还是感觉不会.之前的分析还是不太懂的.现在心里还是有点迷茫.什么都是照着葫芦画瓢. 我的拥有自己的东西才行.
- C语言老司机学Python (五)
今天看的是标准库概览. 操作系统接口: 用os模块实现. 针对文件和目录管理,还有个shutil模块可以用. 例句: import os os.getcwd() # 返回当前的工作目录 os.chdi ...