用centos部署kubernetes----流程

说明:

192.168.1.5:master、etcd

192.168.1.6:node1

192.168.1.7:node2

1.5配置:

配置yum源:

  每个节点都准备好这个k8s安装包,不然网上下载太慢。

[root@master yum.repos.d]# mkdir yum && mv * yum

[root@master yum.repos.d]# vim cdrom.repo 

把这个yum源scp到所有的node。

[root@master yum.repos.d]# scp cdrom.repo [email protected]:/etc/yum.repos.d/

[root@master yum.repos.d]# scp cdrom.repo [email protected]:/etc/yum.repos.d/

关闭防火墙:

[root@master ~]# systemctl stop firewalld && systemctl disable firewalld

安装服务:

[root@master ~]# yum install -y kubernetes etcd flannel ntp

配置hosts文件:

[root@master ~]# vim /etc/hosts

192.168.1.5 master
192.168.1.5 etcd
192.168.1.6 node1
192.168.1.7 node2

配置etcd:

[root@master ~]# vim  /etc/etcd/etcd.conf

改:ETCD_NAME=default

为:ETCD_NAME="etcd" 

etcd节点名称,如果 etcd集群只有一台 etcd,这一项可以注释丌用配置,默认名称为 default,这 个名字后面会用到。

改:ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"

为:ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.1.5:2379" 

etcd对外服务监听地址,一般指定2379端口,如果为 0.0.0.0将会监听所有接口 

改:ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"

为:ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.5:2379"

[root@master ~]# systemctl restart etcd 

[root@master ~]# netstat  -antup | grep 2379 #看2379端口是否监听

[root@master ~]# etcdctl member list  #检查etcd集群成员列表
8e9e05c52164694d: name=etcd peerURLs=http://localhost:2380 clientURLs=http://192.168.1.5:2379 isLeader=true

配置 kubernetes:

[root@master ~]#  vim /etc/kubernetes/config

改:KUBE_MASTER="--master=http://127.0.0.1:8080"

为:KUBE_MASTER="--master=http://192.168.1.5:8080" 

配置apiserver :

[root@master ~]#  vim /etc/kubernetes/apiserver 

改:KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1"

为:KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"

监听的接口,如果配置为 127.0.0.1则只监听localhost,配置为 0.0.0.0会监听所有接口,这里配置为 0.0.0.0。 

改: KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379"

为:KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.1.5:2379"

etcd服务地址,前面 已经吭劢了 etcd服务 

改: KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExist    s,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota"

为:KUBE_ADMISSION_CONTROL="--admission-control=AlwaysAdmit"

不做限制,允讲所 有节点可以访问 apiserver ,对所有请求开绿灯。 

配置kube-scheduler:

[root@master ~]# vim /etc/kubernetes/scheduler

改:KUBE_SCHEDULER_ARGS=""

为:UBE_SCHEDULER_ARGS="0.0.0.0"

scheduler 监听默认是127.0.0.1

设置 etcd网络 :

创建一个目录/ k8s/network 用于存储 flannel 网络信息 :

[root@master ~]# etcdctl mkdir /k8s/network

给/k8s/network/config 赋一个字符串的值 '{"Network": "10.255.0.0/16"}' :
[root@master ~]# etcdctl set /k8s/network/config '{"Network": "10.255.0.0/16"}'

[root@master ~]# etcdctl get /k8s/network/config

注:在启动flannel之前,需要在etcd中添加一条网络配置记录,这个配置将用于flannel分配给每个docker的虚拟IP地址段。用于配置在minion 上docker的IP地址。
由于flannel将覆盖 docker0上的地址,所以flannel 服务要先于docker服务启动。如果 docker服务已经启动,则先停止docker 服务,然后启动lannel,再启动 docker

配置flanneld :

[root@master ~]# vim /etc/sysconfig/flanneld

改:FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379"

为:FLANNEL_ETCD_ENDPOINTS="http://192.168.1.5:2379"

改:FLANNEL_ETCD_PREFIX="/atomic.io/network"

为:FLANNEL_ETCD_PREFIX="/k8s/network"   #注其中/k8s/network 不上面 etcd中的 Network 对应

改:#FLANNEL_OPTIONS=""

为:FLANNEL_OPTIONS="--iface=ens33"   #物理网卡名

[root@master ~]#  systemctl restart  flanneld 

[root@master ~]# ifconfig flannel0

1.6配置:

关闭防火墙:

[root@node1 ~]# systemctl stop firewalld && systemctl disable firewalld

安装服务:

[root@node1 ~]# yum install -y kubernetes etcd flannel ntp

配置 hosts:

[root@node1 ~]# vim /etc/hosts

192.168.1.5 master
192.168.1.5 etcd
192.168.1.6 node1
192.168.1.7 node2

[root@node1 ~]# vim /etc/sysconfig/flanneld

改:FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379"

为:FLANNEL_ETCD_ENDPOINTS="http://192.168.1.5:2379" 

改:FLANNEL_ETCD_PREFIX="/atomic.io/network"

为:FLANNEL_ETCD_PREFIX="/k8s/network" 

改: #FLANNEL_OPTIONS=""

为: FLANNEL_OPTIONS="--iface=ens33" 

[root@node1 ~]# vim /etc/kubernetes/config

改:22 KUBE_MASTER="--master=http://127.0.0.1:8080"

为:22 KUBE_MASTER="--master=http://192.168.1.5:8080" 

[root@node1 ~]# vim /etc/kubernetes/kubelet

改:5 KUBELET_ADDRESS="--address=127.0.0.1"

为: 5 KUBELET_ADDRESS="--address=0.0.0.0"   

默认只监听127.0.0.1,要改成:0.0.0.0, 因为后期要使用 kubectl 进程连接到 kubelet 服务上,来查看 pod 及 pod中容器的状态。如果是 127 就无法进程连接 kubelet服务。

改:11 KUBELET_HOSTNAME="--hostname-override=127.0.0.1"

为:11 KUBELET_HOSTNAME="--hostname-override=node1" 

 minion的主机名,设置 成和本主机机名一样,便于识别。

改:14 KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"

为:14 KUBELET_API_SERVER="--api-servers=http://192.168.1.5::8080" 

批定 apiserver 的地址 

[root@node1 ~]# systemctl restart flanneld
[root@node1 ~]# systemctl restart kube-proxy
[root@node1 ~]# systemctl restart docker

[root@node1 ~]# systemctl restart kubelet

[root@node1 ~]# systemctl status flanneld kube-proxy kubelet docker | grep running

1.7配置:

关闭防火墙:

[root@node2 ~]# systemctl stop firewalld && systemctl disable firewalld

安装服务:

[root@node2 ~]# yum install -y kubernetes etcd flannel ntp

配置 hosts:

[root@node2 ~]# vim /etc/hosts

192.168.1.5 master
192.168.1.5 etcd
192.168.1.6 node1
192.168.1.7 node2

 在node1节点上: 

 [root@node1 ~]#  scp /etc/sysconfig/flanneld [email protected]:/etc/sysconfig/

 [root@node1 ~]#  scp /etc/kubernetes/config [email protected]:/etc/kubernetes/
 [root@node1 ~]#  scp /etc/kubernetes/kubelet [email protected]:/etc/kubernetes/

[root@node2 ~]# vim /etc/kubernetes/kubelet

node1改为node2

[root@node2 ~]# systemctl restart flanneld
[root@node2 ~]# systemctl restart kube-proxy
[root@node2 ~]# systemctl restart docker
[root@node2 ~]# systemctl restart kubelet

   masetr在重启一下服务

[root@master ~]# systemctl restart kube-apiserver kube-controller-manager kube-scheduler flanneld

测试:

[root@master ~]# kubectl get node

NAME STATUS AGE
node1 Ready 10s
node2 Ready 9s

上传一个镜像试试

猜你喜欢

转载自www.cnblogs.com/meml/p/12606739.html