centos部署Kubernetes(k8s)集群

1、环境

yum -y remove kubelet kubeadm kubectl

卸载现在的环境yum remove kubernetes-client-1.5.2-0.7.git269f928.el7.x86_64

192.168.100.129   #master
192.168.100.130   #node1
192.168.100.131   #node2

一台master,两台node,正常来说master服务器不应该有node配置

废话不多说上来第一件事干吗?关闭防护墙(我这是测试环境,生产环境可以开发端口参考https://www.cnblogs.com/zyb2016/p/12910483.html)

主要是使用2379端口和8080端口

关闭方法墙

systemctl stop firewalld
systemctl disable firewalld

三台电脑全部执行

# yum update

2、etcd、kubernetes服务端

开始配置master主机

# yum install etcd kubernetes-master docker-y

安装完执行修改文件

# vi /etc/etcd/etcd.conf,内容如下

ETCD_NAME=default

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS="http://192.168.100.129:2379"

配置完毕运行etcd

systemctl enable etcd

systemctl start etcd

接下来修改apiserver

#vi /etc/kubernetes/apiserver  内容如下

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

KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=192.168.100.192/26"   

说明192.168.100.192/26"这个ip根据自己的网段设置,不知道啥意思自己去百度

设置vi /etc/kubernetes/controller-manager参数

KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"

设置 /etc/kubernetes/config 参数

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

etcd和kubernetes设置完毕接下来启动

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

systemctl start kube-apiserver kube-scheduler kube-controller-manager

最后执行一下命令(别问我为啥,执行就完了)

etcdctl set /coreos.com/network/config '{ "Network" : "10.1.0.0/16" }'     

3、kubernetes nodes配置,只讲解期中一台node

如果有旧版本的docker需要卸载参考https://www.cnblogs.com/zyb2016/p/13679797.html

首先执行

yum install kubernetes-node flannel docker -y

启动docker

systemctl enable docker

systemctl start docker

修改vi /etc/sysconfig/flanneld配置

FLANNEL_ETCD="http://192.168.163.148:2379"

FLANNEL_ETCD_KEY="/coreos.com/network"

启动flanneld服务

systemctl enable flanneld.service

systemctl restart flanneld.service

systemctl restart docker

修改vi /etc/kubernetes/kubelet配置

KUBELET_HOSTNAME="--hostname_override=192.168.100.130"

KUBELET_API_SERVER="--api_servers=http://192.168.100.129:8080"

启动kubelet服务

systemctl enable kubelet kube-proxy

systemctl start kubelet kube-proxy

最后在kubernetes server节点中执行kubectl get nodes可以显示所有的界面信息,并且都是ready状态

如果执行发现no resource耐就执行一下试试

systemctl restart kube-apiserver kube-scheduler kube-controller-manager

systemctl restart etcd

如果还不好用就要vi /etc/kubernetes/apiserver折腾一下这个了

比如改一下KUBE_API_SERVERS,放开对应的port地址,然后执行上面的内容,在执行kubectl get nodes,发现报错,那改回去就好了都重启下就好了

原文地址:https://www.cnblogs.com/zyb2016/p/13686254.html