Kubernetes的安装配置

1.环境准备:

  三台服务器:

  192.168.42.128  master+node

  192.168.42.129  node1

  192.168.42.130  node2

2.准备yum源

vi virt7-docker-common-release.repo

[virt7-docker-common-release]
    name=virt7-docker-common-release
    baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
    gpgcheck=0

3.安装组件分类

master包含     kube-apiserver
               kube-scheduler
               kube-controller-manager
               etcd四个组件
node包含       kube-proxy
               kubelet
               flannel 3个组件                   

1. kube-apiserver:位于master节点,接受用户请求。2. kube-scheduler:位于master节点,负责资源调度,即pod建在哪个node节点。3. kube-controller-manager:位于master节点,包含ReplicationManager,Endpointscontroller,Namespacecontroller,and Nodecontroller等。4. etcd:分布式键值存储系统,共享整个集群的资源对象信息。5. kubelet:位于node节点,负责维护在特定主机上运行的pod。6. kube-proxy:位于node节点,它起的作用是一个服务代理的角色  7. flannel:网络配置    

4.关闭并且禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

5.关闭并且禁用Enforcing

setenforce 0
getenforce

vi /etc/selinux/config
修改:SELINUX=disabled

6.设置NTP同步

*/5 * * * * /usr/sbin/ntpdate cn.ntp.org.cn

7.安装kubernetes master节点

yum install etcd

Dependencies Resolved

=================================================================================================
 Package       Arch            Version                Repository                            Size
=================================================================================================
Installing:
 etcd          x86_64          2.0.9-1.el7            virt7-docker-common-release          2.9 M

Transaction Summary
=================================================================================================
Install  1 Package
yum install kubernetes

Dependencies Resolved

=================================================================================================
 Package              Arch      Version                     Repository                      Size
=================================================================================================
Installing:
 kubernetes           x86_64    1.1.0-0.4.git2bfa9a1.el7    virt7-docker-common-release     26 k
Installing for dependencies:
 docker               x86_64    1.6.2-4.gitc3ca5bb.el7      virt7-docker-common-release    5.0 M
 kubernetes-client    x86_64    1.1.0-0.4.git2bfa9a1.el7    virt7-docker-common-release    3.0 M
 kubernetes-master    x86_64    1.1.0-0.4.git2bfa9a1.el7    virt7-docker-common-release     14 M
 kubernetes-node      x86_64    1.1.0-0.4.git2bfa9a1.el7    virt7-docker-common-release    9.8 M
 socat                x86_64    1.7.2.2-5.el7               base                           255 k

Transaction Summary
=================================================================================================
Install  1 Package (+5 Dependent packages)

vi /etc/etcd/etcd.conf

# [member]
ETCD_NAME=default
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#ETCD_SNAPSHOT_COUNTER="10000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
#ETCD_LISTEN_PEER_URLS="http://localhost:2380,http://localhost:7001"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
#ETCD_CORS=""
#
#[cluster]
#ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380,http://localhost:7001"
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
#ETCD_INITIAL_CLUSTER="default=http://localhost:2380,default=http://localhost:7001"
#ETCD_INITIAL_CLUSTER_STATE="new"
#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
#ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://localhost:4001"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_SRV=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#
#[proxy]
#ETCD_PROXY="off"
#
#[security]
#ETCD_CA_FILE=""
#ETCD_CERT_FILE=""
#ETCD_KEY_FILE=""
#ETCD_PEER_CA_FILE=""
#ETCD_PEER_CERT_FILE=""
#ETCD_PEER_KEY_FILE=""

vi /etc/kubernetes/apiserver

###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
#

# The address on the local server to listen to.
#KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1"
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

# The port on the local server to listen on.
# KUBE_API_PORT="--port=8080"

# Port minions listen on
# KUBELET_PORT="--kubelet-port=10250"

# Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"

# Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

# default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

# Add your own!
KUBE_API_ARGS=""

vi /etc/kubernetes/controller-manager

###
# The following values are used to configure the kubernetes controller-manager

# defaults from config and apiserver should be adequate

# Add your own!
#KUBE_CONTROLLER_MANAGER_ARGS=""
KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"

vi /etc/kubernetes/config

###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://192.168.42.128:8080"

设置服务启动

systemctl status etcd kube-apiserver kube-scheduler kube-controller-manager
systemctl enable etcd kube-apiserver kube-scheduler kube-controller-manager

定义kubernetes的网络

etcdctl mk /coreos.com/network/config ‘{"Network":"172.17.0.0/16"}‘ 

8.安装kubernetes node节点

yum -y install kubernetes-node

Dependencies Resolved

=================================================================================================
 Package              Arch      Version                     Repository                      Size
=================================================================================================
Installing:
 kubernetes-node      x86_64    1.1.0-0.4.git2bfa9a1.el7    virt7-docker-common-release    9.8 M
Installing for dependencies:
 docker               x86_64    1.6.2-4.gitc3ca5bb.el7      virt7-docker-common-release    5.0 M
 kubernetes-client    x86_64    1.1.0-0.4.git2bfa9a1.el7    virt7-docker-common-release    3.0 M
 socat                x86_64    1.7.2.2-5.el7               base                           255 k

Transaction Summary
=================================================================================================
Install  1 Package (+3 Dependent packages)
yum -y install flannel

Dependencies Resolved

=================================================================================================
 Package         Arch           Version                Repository                           Size
=================================================================================================
Installing:
 flannel         x86_64         0.2.0-7.el7            virt7-docker-common-release         1.3 M

Transaction Summary
=================================================================================================
Install  1 Package

修改配置文件/etc/kubernetes

vi /etc/kubernetes/config

[[email protected] kubernetes]# cat /etc/kubernetes/config
###
# kubernetes system config
#
# The following values are used to configure various aspects of all
# kubernetes services, including
#
#   kube-apiserver.service
#   kube-controller-manager.service
#   kube-scheduler.service
#   kubelet.service
#   kube-proxy.service
# logging to stderr means we get it in the systemd journal
KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug
KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers
KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver
#KUBE_MASTER="--master=http://127.0.0.1:8080"
KUBE_MASTER="--master=http://192.168.42.128:8080"

vi /etc/kubernetes/kubelet

[[email protected] kubernetes]# cat /etc/kubernetes/kubelet
###
# kubernetes kubelet (minion) config

# The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=127.0.0.1"

# The port for the info server to serve on
# KUBELET_PORT="--port=10250"

# You may leave this blank to use the actual hostname
#KUBELET_HOSTNAME="--hostname-override=127.0.0.1"
KUBELET_HOSTNAME="--hostname-override=192.168.42.129"

# location of the api-server
#KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"
KUBELET_API_SERVER="--api-servers=http://192.168.42.128:8080"

# Add your own!
#KUBELET_ARGS=""
KUBELET_ARGS="--pod-infra-container-image=kubernetes/pause"

vi /etc/sysconfig/flanneld

# Flanneld configuration options  

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

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

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

启动服务

systemctl status kube-proxy flanneld kubelet docker
systemctl enable kube-proxy flanneld kubelet docker
时间: 2024-08-07 04:30:19

Kubernetes的安装配置的相关文章

kubernetes安装配置

kubernetes是google公司基于docker所做的一个分布式集群,有以下主件组成 etcd: 高可用存储共享配置和服务发现,作为与minion机器上的flannel配套使用,作用是使每台 minion上运行的docker拥有不同的ip段,最终目的是使不同minion上正在运行的docker containner都有一个与别的任意一个containner(别的minion上运行的docker containner)不一样的IP地址. flannel: 网络结构支持 kube-apiser

Kubernetes安装配置指南(二进制安装)

以二进制文件方式安装Kubernetes集群 k8s下载地址:https://github.com/kubernetes/kubernetes/releases wget https://dl.k8s.io/v1.14.0/kubernetes-server-linux-amd64.tar.gz wget https://dl.k8s.io/v1.14.0/kubernetes-client-linux-amd64.tar.gz wget https://dl.k8s.io/v1.14.0/ku

Kubernetes 1.5 配置dns

Kubernetes 1.5 配置dns 在kubernetes1.2的时候,采用了skydns + kube2dns +etcd的方式来部署dns.而从1.3开始,则部署方式有了一点儿变化,将skydns和kube2dns封装到了一个容器镜像中,放弃了etcd,而将dns解析直接放入到了内存之中,同时引入了dnsmasq,进一步利用其缓存,具体的原理,请查阅相关文档.本篇文档,主要阐述新版的dns在kubernetes中的具体部署. 在Kubernetes的源码目录中,有个cluster/ad

Mesos+Kubernetes集成安装部署

因为Docker本身没有提供集群管理能力,对于docker集群一台台的登陆操作不太现实,因此需要引进容器集群的管理工具,主流的有mesosphere的marathon.谷歌的Kubernetes.docker社区的swarm,目前成熟度最高的是Kubernetes.Kubernetes是Google开源的容器集群管理系统,其提供应用部署.维护. 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 使用Docker对应用程序包装(package).实例化(

kubernetes的安装

获取源码 最新安装包下载地址,GitHub下载地址 本次实验的1.10.0的二进制包下载,百度网盘 机器环境 Kubernetes Roles IP地址 Hostname Master 192.168.142.161 kubernetes-node1.example.com Node 192.168.142.162 kubernetes-node2.example.com Node 192.168.142.163 kubernetes-node3.example.com Master端配置 配置

Kubernetes中安装traefik ingress

Kubernetes中安装traefik ingress # 下载配置清单 wget https://github.com/containous/traefik/tree/v1.7/examples/k8s # 链接中以traefik-开头的文件有3个,都可以见名知意,其中traefik-deployment.yaml我们这里没有用到 # traefik-deployment.yaml跟traefik-ds.yaml二者选其一即可,由于底下的配置是根据traefik-ds.yaml来的所以建议使

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. PS: 篇幅有点长,但是比较详细.比较全面 一.Centos7 配置说明 1.1   Firewalld(防火墙) CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server.kubelet等等)需要相互通信的端口

CentOS 6.9中Telnet的安装配置

Telnet:TCP/IP协议中的一员,是Internet远程登录服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.要开始一个Telnet会话,必须输入用户名和密码来登录服务器.Telnet是常用的远程控制Web服务器的方法,监听TCP的23号端口. xinetd:新一代的网络超级守护进程,经常用来管理多种轻量级的Internet服务.xinetd提供类似于inetd+tcp_wrapper的功能,但它更强大更安全.xinetd能够同时监听多个指定的端口,在接受用户请

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director