前面一篇已经安装好了ETCD、docker与flannel(k8s1.4.3安装实践记录(1)),现在可以开始安装k8s了

1、K8S

目前centos yum上的kubernetes还是1.2.0,因此我们只能是使用下载的安装包,进行kubernetes的安装

[root@bogon system]# yum list |grep kubernetes
cockpit-kubernetes.x86_64 0.114-.el7.centos extras
kubernetes.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-client.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-cni.x86_64 0.3.0.1-.07a8a2 kubelet
kubernetes-master.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-node.x86_64 1.2.-0.13.gitec7364b.el7 extras
kubernetes-unit-test.x86_64 1.2.-0.13.gitec7364b.el7 extras

1.1 K8S下载

  使用wget 或者下载软件下载k8s安装包:https://github.com/kubernetes/kubernetes/releases/download/v1.4.3/kubernetes.tar.gz,下载完成,我们会拿到当前1.4.3版本的安装文件。

  

1.2 解压并安装

  解压安装包,并将执行文件存放到合适的地方

tar -zxvf kubernetes.tar.gz
cd kubernetes/server/bin
mkidr /usr/local/kube
cp -R * /usr/local/kube

  设置环境变量文件/etc/profile,将kube执行文件加入的环境变量中

export KUBE_PATH=/usr/local/kube
export PATH=$PATH:$KUBE_PATH

  执行环境变量,使其生效:

source /etc/profile

1.3 启动主节点

  当前主节点为192.168.37.130,需要在主节点上执行kube-apiserver ,kube-controller-manager,kube-scheduler三个进程。

1.3.1 开放端口

  如果没有关闭防火墙且使用的是firewalld,则需要开放相关的端口

firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

1.3.2 启动kube-apiserver

kube-apiserver   --insecure-bind-address=192.168.37.130    --insecure-port=   --service-cluster-ip-range='192.168.37.130/24'   --log_dir=/usr/local/kubernete_test/logs/kube   --v=   --logtostderr=false   --etcd_servers=http://192.168.37.130:2379,http://192.168.37.131:2379   --allow_privileged=false 

1.3.3 启动 kube-controller-manager

kube-controller-manager   --v=  --logtostderr=true  --log_dir=/data/kubernets/logs/kube-controller-manager/  --master=http://192.168.37.130:8080 

1.3.4 启动kube-scheduler

kube-scheduler   --master='192.168.37.130:8080'  --v=   --log_dir=/data/kubernets/logs/kube-scheduler  

1.3.5 查看是否启动完成

[root@bogon ~]# kubectl get componentstatuses
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd- Healthy {"health": "true"}
etcd- Healthy {"health": "true"}

可以看到两个etcd启动完成

1.3.6 设置service

  在/usr/lib/systemd/system文件夹中创建各个进程的service文件

  1、kube-apiserver.service

[Unit]
Description=kube-apiserver
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-apiserver
ExecStart=/usr/local/kube/kube-apiserver ${INSECURE_BIND_ADDRESS} ${INSECURE_PORT} ${SERVICE_CLUSTER_IP_RANGE} ${LOG_DIR} ${VERSION} ${LOGTOSTDERR} ${ETCD_SERVERS} ${ALLOW_PRIVILEGED}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

其对应的配置文件/etc/sysconfig/kubernets/kube-apiserver如下:

#INSECURE_BIND_ADDRESS="--insecure-bind-address=0.0.0.0"
INSECURE_BIND_ADDRESS="--address=0.0.0.0"
INSECURE_PORT="--insecure-port=8080"
SERVICE_CLUSTER_IP_RANGE="--service-cluster-ip-range=172.16.0.0/16"
LOG_DIR="--log_dir=/usr/local/kubernete_test/logs/kube"
VERSION="--v=0"
LOGTOSTDERR="--logtostderr=false"
ETCD_SERVERS="--etcd_servers=http://192.168.37.130:2379,http://192.168.37.131:2379"
ALLOW_PRIVILEGED="--allow-privileged=false"
ADMISSION_CONTROL="--admission-control=NamespaceAutoProvision,ServiceAccount,LimitRanger,ResourceQuota"

注意:配置文件中的参数名不能使用“-”

2016年11月3日补充:在刚开始配置的时候将INSECURE_BIND_ADDRESS="--insecure-bind-address=192.168.37.130",但这样会存在一个使用本地链路127.0.0.1:8080去访问的是被拒绝掉,而修改为INSECURE_BIND_ADDRESS="--address=0.0.0.0"就不会存在这种问题,具体见:http://www.cnblogs.com/lyzw/p/6023935.html

  2、kube-controller-manager

  配置kube-controller-manager.service

[Unit]
Description=kube-controller-manager
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-controller-manager
ExecStart=/usr/local/kube/kube-controller-manager ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

  设置/etc/sysconfig/kubernets/kube-controller-manager

VERSION="--v=0"
LOGTOSTDERR="--logtostderr=true"
LOG_DIR="--log_dir=/data/kubernets/logs/kube-controller-manager/"
MASTER="--master=http://192.168.37.130:8080"

  3、设置kube-scheduler服务

  kube-scheduler.service

[Unit]
Description=kube-scheduler
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-scheduler
ExecStart=/usr/local/kube/kube-scheduler ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target

  配置文件如下

VERSION="--v=0"
LOGTOSTDERR="--logtostderr=true"
LOG_DIR="--log_dir=/data/kubernets/logs/kube-scheduler"
MASTER="--master=http://192.168.37.130:8080

  4、重启各个服务  

systemctl daemon-reload
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler

1.4 启动minion

  Minion需要启动kube-proxy,kubelet两个进程

1.4.1 kube-proxy启动  

#在两台机器都执行
kube-proxy --logtostderr=true --v= --master=http://192.168.37.130:8080

1.4.1 kubelet启动

kubelet  --logtostderr=true --v= --allow-privileged=false  --log_dir=/data/kubernets/logs/kubelet  --address=0.0.0.0  --port=  --hostname_override=192.168.37.130  --api_servers=http://192.168.37.130:8080  

1.4.5配置service

1、kube-proxy.service

[Unit]
Description=kube-proxy
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kube-proxy
ExecStart=/usr/local/kube/kube-proxy ${VERSION} ${LOGTOSTDERR} ${LOG_DIR} ${MASTER}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target
/etc/sysconfig/kubernets/kube-proxy
VERSION="--v=0"
LOGTOSTDERR="--logtostderr=true"
LOG_DIR="--log_dir=/data/kubernets/logs/kube-controller-manager/"
MASTER="--master=http://192.168.37.130:8080"

2、kubelet.service

[Unit]
Description=kubelet
Documentation=http://kubernetes.io/docs/ [Service]
EnvironmentFile=-/etc/sysconfig/kubernets/kubelet
ExecStart=/usr/local/kube/kubelet ${LOGTOSTDERR} ${VERSION} ${ALLOW_PRIVILEGED} ${LOG_DIR} ${ADDRESS} ${PORT} ${HOSTNAME_OVERRIDE} ${API_SERVERS}
KillMode=process
Restart=on-failure
RestartSec=42s [Install]
WantedBy=multi-user.target
/etc/sysconfig/kubernets/kubelet配置文件
LOGTOSTDERR="--logtostderr=true"
VERSION="--v=0"
ALLOW_PRIVILEGED="--allow-privileged=false"
LOG_DIR="--log_dir=/data/kubernets/logs/kubelet"
ADDRESS="--address=0.0.0.0"
PORT="--port=10250"
HOSTNAME_OVERRIDE="--hostname_override=192.168.37.131"
API_SERVERS="--api_servers=http://192.168.37.130:8080"

经过如上的步骤,k8s基本上已经安装好了,后续在把dashboard给安装上。

问题:

1、采用网上的配置,执行会产生一些警告信息:

[root@bogon server]# kube-apiserver   --address=192.168.37.130    --insecure-port=   --service-cluster-ip-range='192.168.37.130/24'   --log_dir=/usr/local/kubernete_test/logs/kube   --kubelet_port=   --v=   --logtostderr=false   --etcd_servers=http://192.168.37.130:2379,http://192.168.37.131:2379   --allow_privileged=false
Flag --address has been deprecated, see --insecure-bind-address instead.
Flag --kubelet-port has been deprecated, kubelet-port is deprecated and will be removed.
[restful] // :: log.go:: [restful/swagger] listing is available at https://192.168.37.130:6443/swaggerapi/
[restful] // :: log.go:: [restful/swagger] https://192.168.37.130:6443/swaggerui/ is mapped to folder /swagger-ui/

2、执行kubectl get componentstatuses报错

[root@bogon ~]# kubectl get componentstatuses
The connection to the server localhost: was refused - did you specify the right host or port?

  如上问题,如果在master机器上执行,则是因为/etc/hosts文件没有配置导致,在文件中加入ip localhost条目即可。

  如果是在从节点上,在执行kubectl get componentstatuses语句时候,加上kubectl -s $masterIP:$port get componentstatuses,其中$masterIP为主节点IP,$port为主节点的服务IP,即安装文档中的8080端口,如:kubectl -s http://192.168.37.130:8080 get componentstatuses

k8s1.4.3安装实践记录(2)-k8s安装的更多相关文章

  1. k8s1.4.3安装实践记录(1)-etcd、docker、flannel安装配置

    虚拟机:VMware® Workstation 12 Pro 系统:CentOS Linux release 7.2.1511 (Core) 3.10.0-327.el7.x86_64 由于刚开始学习 ...

  2. k8s1.4.3安装实践记录(3)下载基础镜像

    下载基础镜像,因为Google被墙,所以我们用时速云中的镜像来tag docker pull index.tenxcloud.com/google_containers/pause-amd64:3.0 ...

  3. FastDFS安装全过程记录(V5.05)

    FastDFS安装全过程记录 1.安装准备 HA虚拟IP:192.168.1.208 HA软件:Keepalived 操作系统:CentOS 7 用户:root 数据目录:/data/fastdfs ...

  4. hexo静态博客的安装及应用实践记录

    1. 必须要安装 nodejs,git 2. 安装hexo node install -g hexo 3. npm源的问题使在安装时有卡住的问题而导致无法安装,则需要更改npm的源 npm confi ...

  5. 我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程

    评论»   文章目录 为什么要Https 如何选择Https 安装部署SSL证书 平滑过渡Https 搜索引擎的响应 启用Https小结 正如大家所看到的,部落全站已经启用了Https访问了,连续几天 ...

  6. Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装(转载)(1)

    Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装 一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇 ...

  7. ElasticSearch5.0+版本分词热更新实践记录

    前言 刚开始接触ElasticSearch的时候,版本才是2.3.4,短短的时间,现在都更新到5.0+版本了.分词和head插件好像用法也不一样了,本博客记录如何配置Elasticsearch的Hea ...

  8. 1、大型项目的接口自动化实践记录--robotframework环境搭建

    因为人力.团队技术问题,选用robotframework来做自动化,首先说下环境搭建 齐涛道长的入门教程非常棒:http://blog.csdn.net/tulituqi/article/detail ...

  9. Istio最佳实践:在K8s上通过Istio服务网格进行灰度发布

    Istio是什么? Istio是Google继Kubernetes之后的又一开源力作,主要参与的公司包括Google,IBM,Lyft等公司.它提供了完整的非侵入式的微服务治理解决方案,包含微服务的管 ...

随机推荐

  1. SSM整合AOP,日志框架和拦截器

    前言 日志是所有系统必不可少的部分,而AOP在MVC通常用于监控方法调用,可以生成一个traceid,记录从用户调用到底层数据库的数据链路,帮助监控和排查问题. AOP 现在做一个简单的前置切面,用来 ...

  2. CF 913 A

    题解: 首先判断n是否大于30 大于30输出m 否则输出m%2^n 代码: #include<bits/stdc++.h> using namespace std; int n,m; in ...

  3. UML_03_类图

    一.前言 类图是UML结构图,在类和接口的层次上显示设计系统的结构,显示它们的特性.约束和关系等,是定义其它图的基础. 二.类图 如上图,在类图中表示方法如下: 斜体 :抽象类.抽象方法 下划线 :静 ...

  4. Linux服务器上安装tomcat

    安装软件 : apache-tomcat-9.0.0.M1.tar.gz(下载地址http://tomcat.apache.org/) 步骤一 Tomcat是其中一个开源的且免费的java Web服务 ...

  5. 二进制包形式安装mysql5.7.17

    mysql5.7与mysql5.5的安装方式有些区别,如果按照5.5的方式来安装5.7就会有很多报错信息,下面介绍mysql5.7.17的二进制安装方式. 首先安装依赖包: yum -y instal ...

  6. C++实现设计模式之 —策略与简单工程结合

    策略模式封装算法 // cash.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #inc ...

  7. java 静态代理 JDK动态代理 Cglib动态代理

    下面以一个简单的银行账户为例讲述讲述动态代理. 设计一个银行账户类,包含用户的账户余额,实现查询和更新余额功能 这个系统用了一段时间,有客户要求对账说账户余额给弄错了?因为上面没有存取款记录,最后银行 ...

  8. ASP.NET MVC 中使用用户控件——转

    讲讲怎么在 ASP.NET MVC2中使用用户控件.首先我们新建一个用户控件,   我们命名为SelectGroup.ascx,代码如下 <%@ Control Language="C ...

  9. Windows 2003/XP 连接vmware 5.5错误

    参考文章:http://www.mamicode.com/info-detail-7253.html 补丁下载地址参考: http://support.microsoft.com/hotfix/KBH ...

  10. [Scala]Scala学习笔记四 类

    1. 简单类与无参方法 class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注 在Scala中,类并不声明为 ...