kubernetes集群搭建实战

1       条件准备:

         IP:172.16.20.17  Master Centos7  内核3.10 内存8G 硬盘150G

         IP:172.16.20.18  Node Centos7  内核3.10 内存8G 硬盘50G

         IP:172.16.20.19  Node Centos7  内核3.10 内存8G 硬盘50G

2       KubernetesMaster配置

         关闭防火墙、SELinux

         systemctlstop firewalld

         systemctldisable firewalld

         setenforce0

2.1  CentOS yum代理与yum源设置

# cd /etc/

# nano yum.conf

在文件中增加

proxy=http://172.16.20.20:3128

 

然后

# cd /etc/yum.repos.d

# mv CentOS-Base.repo CentOS-Base.repo.bak

# vim CentOS-Base.repo  写入如下内容

 

# CentOS-Base.repo

#

# The mirror system uses the connecting IP address of the client andthe

# update status of each mirror to pick mirrors that are updated toand

# geographically close to the client.  You should use this for CentOS updates

# unless you are manually picking other mirrors.

#

# If the mirrorlist= does not work for you, as a fall back you cantry the

# remarked out baseurl= line instead.

#

#

[base]

name=CentOS-$releasever - Base - 163.com

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

 

#released updates

[updates]

name=CentOS-$releasever - Updates - 163.com

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates

baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

 

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras - 163.com

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras

baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

 

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus - 163.com

baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7

        

          然后

# yum clean all

# yum repolist 查看163源

# yum makecache

2.2  安装docker、etcd、Kubernetes-master服务

yum install -y etcd docker kubernetes-master

配置docker代理,下载基础镜像

在/etc/sysconfig/docker文件中增加代理设置

http_proxy=http://172.16.20.20:3128

 

重启docker服务

# systemctl restart docker

2.3  搭建私有仓库

下载仓库镜像:

# dockerpull docker.io/registry

vim /etc/docker/daemon.json

写入

{"insecure-registries":["172.16.20.17:5000"]

}

vim /etc/sysconfig/docker

注释代理

#http_proxy=http://172.16.20.20:3128

systemctl restart docker

docker run –d –p 5000:5000 docker.io/registry

 

验证仓库

docker tag docker.io/registry 172.16.20.17:5000/registry:latest

docker push 172.16.20.17:5000/registry:latest

 

push成功则部署仓库成功。

 

将基础镜像上传至仓库(基础镜像需要自己先拿到master虚拟机)

docker push 172.16.20.17:5000/alpine:tomcat       

docker push 172.16.20.17:5000/alpine:vpn

docker push 172.16.20.17:5000/phantomjs:tomcat

docker push 172.16.20.17:5000/rhel7/pod-infrastructure:latest

 

然后打标签:

docker tag 172.16.20.17:5000/alpine:tomcat alpine:tomcat

。。。依次类推

   

2.4  配置etcd服务

a)  修改etcd配置文件/etc/etcd/etcd.conf

ETCD_NAME=default

ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379

ETCD_ADVERTISE_CLIENT_URLS=http://localhost:2379

b)        更新etcd服务文件,重启服务

# systemctl restart etcd

2.5      在etcd里定义flannel网络地址,供节点使用

 

master中执行:

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

2.6      修改apiserver配置文件

a)        修改apiserver配置文件

vim /etc/kubernetes/apiserver

KUBE_API_ADDRESS="--address=0.0.0.0"

KUBE_ETCD_SERVERS="--etcd_servers=http://127.0.0.1:2379"

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"

KUBE_ADMISSION_CONTROL="--admission_control=NamespaceAutoProvision,LimitRanger,ResourceQuota"

KUBE_API_ARGS="--service-node-port-range=80-35535"

2.7      启动Master服务,创建启动文件,关闭文件

Master上启动kube-apiserver kube-controller-manager kube-scheduler服务

创建Master服务启动文件start-k8s-master.sh

for SERVICES in etcd kube-apiserverkube-controller-manager kube-scheduler;

 do

    systemctl restart $SERVICES

    systemctl enable $SERVICES

    systemctl status $SERVICES

done

 

加执行权限:chmod +x start-k8s-master.sh

 

启动master

./start-k8s-master.sh

3       Kubernetes node配置

关闭防火墙、SELinux

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

3.1  安装docker、flannel、kubernetes-node服务

yum install -y flannel docker kubernetes-node

3.2      在hosts添加k8s-master及k8s-slave*地址

在hosts文件添加配置,/etc/hosts

172.16.20.17 k8s-master

172.16.20.18 slave-1

172.16.20.19 slave-2

3.3      配置flanneld

修改flanneld配置nano /etc/sysconfig/flanneld

FLANNEL_ETCD=http://k8s-master:2379

FLANNEL_ETCD_KEY="/coreos.com/network"

FLANNEL_OPTIONS="--logtostderr=false--log_dir=/var/log/flannel/ --iface=ens3"

 

3.4      配置kube-proxy

修改Kube-proxy 默认配置

nano /etc/kubernetes/config

KUBE_MASTER="--master=http://k8s-master:8080"

 

3.5      配置kubelet

修改各节点的kubelet配置

nano /etc/kubernetes/kubelet

节点1

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_PORT="--port=10250"

# change the hostname to this host’s IP address

KUBELET_HOSTNAME="--hostname_override=k8s-slave"

KUBELET_API_SERVER="--api_servers=http://k8s-master:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=rhel7/pod-infrastructure:latest"

KUBELET_ARGS=""

 

节点2

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_PORT="--port=10250"

# change the hostname to this host’s IP address

KUBELET_HOSTNAME="--hostname_override=k8s-slave-2"

KUBELET_API_SERVER="--api_servers=http://k8s-master:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=rhel7/pod-infrastructure:latest"

KUBELET_ARGS=""

 

3.6      修改docker启动参数

修改/usr/lib/systemd/system/docker.service

使docker服务启动时应用flannel网络

添加

EnvironmentFile=/run/flannel/subnet.env

 

更改存储方式为overlay,提高读写性能  #可选操作

修改/etc/sysconfig/docker-storage

DOCKER_STORAGE_OPTIONS="--storage-driver=overlay"

3.7      启动Node服务,创建启动文件,关闭文件

Slvae上启动kube-proxy, kubelet, flannelddocker服务

创建Node服务启动文件start-node.sh

$ for SERVICES in kube-proxy kubelet flanneld docker;

 do

    systemctl restart $SERVICES

    systemctl enable $SERVICES

    systemctl status $SERVICES

done

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值