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

由于刚开始学习k8s,本次软件的安装,我们都采用最简单的方式,能用yum 安装的尽量采用yum安装

1、ETCD安装

ETCD官方文档:https://github.com/coreos/etcd/blob/master/Documentation/docs.md

1.1 检查ETCD版本

[[email protected] ~]# yum list|grep etcd
etcd.x86_64                                2.3.7-4.el7                 @extras
[[email protected] ~]# 

1.2 安装ETCD

yum install etcd

1.3 修改ETCD配置

安装好后,系统会自动生成etcd.service文件(路径为/usr/lib/systemd/system/),修改对应的配置

[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
User=etcd
# set GOMAXPROCS to number of processors
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd \
--name=\"${ETCD_NAME}\" \
--data-dir=\"${ETCD_DATA_DIR}\" \
--listen-peer-urls=\"${ETCD_LISTEN_PEER_URLS}\" \
--advertise-client-urls=\"${ETCD_ADVERTISE_CLIENT_URLS}\" \
--initial-cluster-token=\"${ETCD_INITIAL_CLUSTER_TOKEN}\" \
--initial-cluster=\"${ETCD_INITIAL_CLUSTER}\"  \
--initial-cluster-state=\"${ETCD_INITIAL_CLUSTER_STATE}\" \
--listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\""
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

并配置其配置文件

ETCD_NAME=zwetcd_2
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"ETCD_LISTEN_PEER_URLS="http://192.168.37.131:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.37.131:2379,http://127.0.0.1:2379"
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.37.131:2380"
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
ETCD_INITIAL_CLUSTER="zwetcd_2=http://192.168.37.131:2380,zwetcd_1=http://192.168.37.130:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.37.131:2379"

如果使用firewalld作为防火墙,则需要开放端口:

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

  问题:

1、本地连接报错

[[email protected] system]# etcdctl ls /
Error: client: etcd cluster is unavailable or misconfigured
error #0: dial tcp 127.0.0.1:2379: getsockopt: connection refused
error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused

如果出现如上的错误,是因为ETCD_LISTEN_CLIENT_URLS参数没有配置http://127.0.0.1:2379而导致的,不过已经配置了具体的IP,还需要配置本地链路,这个就有点奇怪了。

2、Docker安装

2.1、检查docker版本

yum list |grep docker

[[email protected] ~]# yum list|grep docker
docker.x86_64                              1.10.3-46.el7.centos.14     @extras
docker-common.x86_64                       1.10.3-46.el7.centos.14     @extras
docker-selinux.x86_64                      1.10.3-46.el7.centos.14     @extras
cockpit-docker.x86_64                      0.114-2.el7.centos          extras
docker-devel.x86_64                        1.3.2-4.el7.centos          extras
docker-distribution.x86_64                 2.4.1-2.el7                 extras
docker-forward-journald.x86_64             1.10.3-44.el7.centos        extras
docker-latest.x86_64                       1.12.1-2.el7.centos         extras
docker-latest-logrotate.x86_64             1.12.1-2.el7.centos         extras
docker-latest-v1.10-migrator.x86_64        1.12.1-2.el7.centos         extras
docker-logrotate.x86_64                    1.10.3-46.el7.centos.14     extras
docker-lvm-plugin.x86_64                   1.10.3-46.el7.centos.14     extras
docker-novolume-plugin.x86_64              1.10.3-46.el7.centos.14     extras
docker-python.x86_64                       1.4.0-115.el7               extras
docker-registry.noarch                     0.6.8-8.el7                 extras
docker-registry.x86_64                     0.9.1-7.el7                 extras
docker-unit-test.x86_64                    1.10.3-46.el7.centos.14     extras
docker-v1.10-migrator.x86_64               1.10.3-46.el7.centos.14     extras
python-docker-py.noarch                    1.7.2-1.el7                 extras
[[email protected] ~]#

2.2 安装docker

1 yum install docker -y

2.3 检查docker安装信息

[[email protected] ~]# docker version
Client:
 Version:         1.10.3
 API version:     1.22
 Package version: docker-common-1.10.3-46.el7.centos.14.x86_64
 Go version:      go1.6.3
 Git commit:      cb079f6-unsupported
 Built:           Fri Sep 16 13:24:25 2016
 OS/Arch:         linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

3 flannel

3.1 检查flannel版本

[[email protected] etcd]# yum list |grep flannel
flannel.x86_64                             0.5.3-9.el7                 @extras  

3.2 安装flannel

yum install flannel 

3.3 修改service配置

查看flannel的配置文件(使用yum安装会自动生成此文件,如果下载的执行文件则需要手动生成,在使用systemctl命令执行service 的时候会用到),可以看到flannel的service配置如下:

[[email protected] etcd]# more /usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network.target
After=network-online.target
Wants=network-online.target
After=etcd.service
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flanneld
EnvironmentFile=-/etc/sysconfig/docker-network
ExecStart=/usr/bin/flanneld -etcd-endpoints=${FLANNEL_ETCD} -etcd-prefix=${FLANNEL_ETCD_KEY} $FLANNEL_OPTIONS
ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
Restart=on-failure

[Install]
WantedBy=multi-user.target
RequiredBy=docker.service

其中所有的参数都配置在/etc/sysconfig/flanneld文件中,修改此文件,初始文件如下:

# Flanneld configuration options  

# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD="http://127.0.0.1:2379"

# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_KEY="/atomic.io/network"

# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

其中

  FLANNEL_ETCD:为ETCD的地址,

  FLANNEL_ETCD_KEY:为在etcd中配置的网络参数的key 

  FLANNEL_OPTIONS:为flannel的启动参数

根据前面步骤中etcd的配置,我们修改配置文件如下:

# Flanneld configuration options  

# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD="http://192.168.37.130:2379"

# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_KEY="/flannel/network"

# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

3.4 启动FLANNEL

可以使用service flanneld start 或者systemctl start flannel启动flannel

3.5 修改docker网络

因为docker需要使用flanneld的网络,因此需要修改docker的service文件:

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target rhel-push-plugin.socket
Wants=docker-storage-setup.service

[Service]
Type=notify
NotifyAccess=all
#import flannel configuration
EnvironmentFile=-/etc/sysconfig/flanneld
EnvironmentFile=-/run/flannel/subnet.env
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
ExecStart=/usr/bin/docker-current daemon           --exec-opt native.cgroupdriver=systemd           $OPTIONS           $DOCKER_STORAGE_OPTIONS           $DOCKER_NETWORK_OPTIONS           $ADD_REGISTRY           $BLOCK_REGISTRY           $INSECURE_REGISTRY           --bip=${FLANNEL_SUBNET}
LimitNOFILE=1048576
LimitNPROC=1048576
LimitCORE=infinity
TimeoutStartSec=0
MountFlags=slave
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

在执行前增加配置文件

EnvironmentFile=-/etc/sysconfig/flanneld

EnvironmentFile=-/run/flannel/subnet.env

执行命令增加参数 --bip=${FLANNEL_SUBNET}

重启docker

systemctl daemon-reload
systemctl restart docker

3.6 问题

1、Failed to retrieve network config: 104: Not a directory (/flannel/network/config)

问题原因:在初次配置的时候,把flannel的配置文件中的etcd-prefix-key配置成了/flannel/network/config,实际上应该是/flannel/network

注意:如上配置需要在集群的所有机器上执行,完成后,上述安装的各个系统的启动顺序应该是:

systemctl start etcd

systemctl start flannel

systemctl start docker

配置完检查:

使用ip a检查当前的网络的准备情况:

[[email protected] system]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:79:cf:e3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.37.130/24 brd 192.168.37.255 scope global dynamic eno16777736
       valid_lft 1554sec preferred_lft 1554sec
    inet6 fe80::20c:29ff:fe79:cfe3/64 scope link
       valid_lft forever preferred_lft forever
9: flannel0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1472 qdisc pfifo_fast state UNKNOWN qlen 500
    link/none
    inet 172.17.75.0/16 scope global flannel0
       valid_lft forever preferred_lft forever
10: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether 02:42:e3:f0:0d:05 brd ff:ff:ff:ff:ff:ff
    inet 172.17.75.1/24 scope global docker0
       valid_lft forever preferred_lft forever

如果看到到flannel0余docker0的网段相同,则网络配置成功。

时间: 2024-10-02 15:53:48

k8s1.4.3安装实践记录(1)-etcd、docker、flannel安装配置的相关文章

k8s1.4.3安装实践记录(2)-k8s安装

前面一篇已经安装好了ETCD.docker与flannel(k8s1.4.3安装实践记录(1)),现在可以开始安装k8s了 1.K8S 目前centos yum上的kubernetes还是1.2.0,因此我们只能是使用下载的安装包,进行kubernetes的安装 [[email protected] system]# yum list |grep kubernetes cockpit-kubernetes.x86_64 0.114-2.el7.centos extras kubernetes.x

自己学Docker:3.安装Docker之后可以先做什么

周末回家,这周工作事情又多,对于Docker的学习脱了几天.今天终于完成了任务,于是继续学习中. 在上一章,也就是我前几天,我了解了Docker安装和一些基本概念,如容器和镜像等.那么,现在Docker安装好了,剩下的可以做些什么呢? 启动一个Docker容器 首先,查看下本地有那些镜像. sudo docker images 这里我本地已经下载了2个镜像.下面运行一个镜像. sudo docker run -i -t docker/whalesay /bin/bash 本地没有镜像也没关系,D

基于kail的docker下安装sqli-labs

后面的关卡涉及到转码问题,比如空格,在Windows中会受到限制,比如24关的文件重命名问题,所以在这记录下在docker下安装sqli-labs,在linux下运行就不会受到限制. 参考链接:https://www.jianshu.com/p/2ad3edf3c61f等等 开始,先安装完kail,第一件要做的事就是更新源,这里推荐阿里的源 网上有太多这方面的教程,更新源就不多说了. 然后安装docker:aqt-get install docker.io docker命令就能用了 之后:在这个

RHadoop实践系列之二:RHadoop安装与使用

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析.Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现.有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB. 由于大数据所带来的单机性能问题,可能会一去不复返了. RHadoop实践是一套系列文章,主要包括”Hadoop环境搭建”,”RHadoop安装与使用”,”R实现MapReduce的协同过滤算法”,”

北塔网管软件BTSO2.5安装过程记录

北塔网管软件据说是同类比较好的,原来的BTIM系列好像停止更新了,用BTSO版本代替,叫智慧运维平台,据说有各种改进,先把安装过程记录下来,以备以后重装. BTSO分两个部分:平台服务器和注册服务器,可以安装到一台主机,也可以分开,他们要能够通讯,否则认为盗版,注册要记录系统环境.要识别原版光盘,反正国产的软件版权意识近乎变态. 说明上要求win2008r2ent中文版或者win2012企业中文版,先试了2012,注册菜单不出现,重新用2008安装.顺序如下: 1.安装BETA-BTSO_2.5

运维自动化工具Cobbler之——安装实践

运维自动化工具--Cobbler实践 第1章 About Cobbler 1.1 Cobbler Introduction Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使用命令行方式管理,也提供了基于Web的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发使用.Cobbler是较早前的kickstart的升级版,优点是比较容易配置,还自带web

CentOS6.5_Nginx1.40_Php5.57_MySQL5.5.35编译安装全记录

环境说明:CentOS 6.5 32位  PHP Version 5.5.7  mysql version _5.6.16 一.准备工作 配置防火墙,允许防火墙通过22(sshd).80(WEB).3306(MYSQL)端口iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 3306 -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j ACCEPTi

Nginx安装问题记录

安装时遇到了2个问题,特此记录下. 问题1:Public key for *.rpm is not installed 解决方法:在repo文件中加上"gpgcheck=0",默认没有这一项,看来系统默认是要check的,这个还是头一次知道. 问题2:./configure: error: the HTTP rewrite module requires the PCRE library 解决方法:yum -y install openssl openssl-devel Nginx安装

[转]Caffe安装过程记录(CentOS,无独立显卡,无GPU)

Caffe安装过程记录(CentOS,无独立显卡,无GPU) 原文地址:http://www.aiuxian.com/article/p-2410195.html 参考资料: http://www.tuicool.com/articles/uiuA3e Caffe 安装配置(CentOS + 无GPU) http://blog.sina.com.cn/s/blog_990865340102vewt.html caffe 安装配置(CentOS 6.5 + 无GPU) http://www.cnb