k8s1.4.3安装实践记录(2)-k8s安装
前面一篇已经安装好了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安装的更多相关文章
- 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 由于刚开始学习 ...
- k8s1.4.3安装实践记录(3)下载基础镜像
下载基础镜像,因为Google被墙,所以我们用时速云中的镜像来tag docker pull index.tenxcloud.com/google_containers/pause-amd64:3.0 ...
- FastDFS安装全过程记录(V5.05)
FastDFS安装全过程记录 1.安装准备 HA虚拟IP:192.168.1.208 HA软件:Keepalived 操作系统:CentOS 7 用户:root 数据目录:/data/fastdfs ...
- hexo静态博客的安装及应用实践记录
1. 必须要安装 nodejs,git 2. 安装hexo node install -g hexo 3. npm源的问题使在安装时有卡住的问题而导致无法安装,则需要更改npm的源 npm confi ...
- 我是如何将网站全站启用Https的?-记录博客安装配置SSL证书全过程
评论» 文章目录 为什么要Https 如何选择Https 安装部署SSL证书 平滑过渡Https 搜索引擎的响应 启用Https小结 正如大家所看到的,部落全站已经启用了Https访问了,连续几天 ...
- Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装(转载)(1)
Redis进阶实践之一VMWare Pro虚拟机安装和Linux系统的安装 一.引言 设计模式写完了,相当于重新学了一遍,每次学习都会有不同的感受,对设计模式的理解又加深了,理解的更加透彻了.还差一篇 ...
- ElasticSearch5.0+版本分词热更新实践记录
前言 刚开始接触ElasticSearch的时候,版本才是2.3.4,短短的时间,现在都更新到5.0+版本了.分词和head插件好像用法也不一样了,本博客记录如何配置Elasticsearch的Hea ...
- 1、大型项目的接口自动化实践记录--robotframework环境搭建
因为人力.团队技术问题,选用robotframework来做自动化,首先说下环境搭建 齐涛道长的入门教程非常棒:http://blog.csdn.net/tulituqi/article/detail ...
- Istio最佳实践:在K8s上通过Istio服务网格进行灰度发布
Istio是什么? Istio是Google继Kubernetes之后的又一开源力作,主要参与的公司包括Google,IBM,Lyft等公司.它提供了完整的非侵入式的微服务治理解决方案,包含微服务的管 ...
随机推荐
- Django之model操作(续)
Django中的源码续 ################################################## # PUBLIC METHODS THAT RETURN A QUERYS ...
- L161
The robot arm made for gentle undersea explorationA soft robotic arm which will allow underwater sea ...
- iOS 阶段学习第四天笔记(循环)
iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ } 两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...
- Leetcode 894. All Possible Full Binary Trees
递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # ...
- iOS9的新特性以及适配方案-----转载
2015年9月8日,苹果宣布iOS 9操作系统的正式版在太平洋时间9月16日正式推出,北京时间9月17日凌晨1点推送. 新的iOS 9系统比iOS8更稳定,功能更全面,而且还更加开放.iOS 9加入了 ...
- OK335xS 系统启动配置解析
OK335xS 系统启动配置解析 一.参考文档: AM335x ARM® Cortex™-A8 Microprocessors (MPUs) Technical Reference Manual 二. ...
- css 问题
问题1:使得在div中的图片自适应于Div的大小 图片放在DIV中是为了更好地管理,那么如果图片不能自适应与div的大小,则此事的初衷就会变质. 怎样自适应呢,有一个很简单的办法: img{ widt ...
- Why I am not afraid of AI (TBC)
Freud! Yes, according to Freud's theory, most human activities are driven by libido (or aim-inhibite ...
- erl_0015 《硝烟中的erlang》 读书笔记002 “为过载做计划”
为过载做计划 到目前为止,我在实际工作中所碰到最常见的错误,基本上都是节点内存耗尽.而且通常都和过长的消息队列有关37.解决这类问题的方法有很多,不过只有在深入.全面的理解系统后,才能做出正确的选择. ...
- BZOJ5280: [Usaco2018 Open]Milking Order(二分+拓扑)
5280: [Usaco2018 Open]Milking Order Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 123 Solved: 62[ ...