五、ubuntu16/Centos7上部署安装k8s1.9(二进制包)
5.1 主机节点规划
角色
主机名
主机ip
组件
etcd
etcd
192.168.0.106
etcd
master
kube-master
192.168.0.107
kube-apiserver,kube-controller-manager,kube-scheduler
node1
kube-node1
192.168.0.108
kubelet,kube-proxy,docker
node2
kube-node2
192.168.0.109
kubelet,kube-proxy,docker
node3
kube-node3
192.168.0.110
kubelet,kube-proxy,docker
5.2 k8s各组件的安装顺序
获取kubernetes二进制包
运行master组件
运行node组件以及安装Docker
检查集群状态
测试运行Demo实例
5.2.0 初始化所有的节点信息
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭selinux
setenforce 0
grep -E '^SELINUX=' /etc/sysconfig/selinux //如果是enforcing,则将其关闭
[root@node ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
[root@node ~]# grep -E '^SELINUX=' /etc/sysconfig/selinux
SELINUX=disabled
创建k8s二进制执行文件和配置文件的存放目录以及命令行程序的环境变量信息
mkdir -pv /opt/kubernetes/{bin,cfg} && echo "export PATH=$PATH:/opt/kubernetes/bin" >> /etc/profile && source /etc/profile
5.2.1 获取k8s二进制包
在kubernetes in github的仓库中找到CHANGELOG-*.md,里面会找到各个版本的二进制文件,以及安装K8s平台组件的Shell安装脚本,==注意这些脚本在安装的时候要根据自己实际存放二进制的位置做出相应的调整 ==
下载的文件如下
-rw-r--r--. 1 root root 15628779 Aug 4 16:41 kubernetes-client-linux-1.9.1-amd64.tar.gz
-rw-r--r--. 1 root root 418747484 Aug 4 16:41 kubernetes-server-linux-1.9.1-amd64.tar.gz
-rw-r--r--. 1 root root 2877413 Aug 4 18:28 kubernetes.tar.gz
解压之后按照==主机节点规划==中的说明归档相应的二进制程序文件
tar xf kubernetes-client-linux-1.9.1-amd64.tar.gz
tar xf kubernetes-server-linux-1.9.1-amd64.tar.gz
tar xf kubernetes.tar.gz
解压之后,三个压缩包文件解压后都会存放在同一个叫做Kubernetes的目录中
==准备kube-master节点运行的文件==
cp /root/kubernetes/cluster/centos/master/scripts/{apiserver.sh,controller-manager.sh,scheduler.sh} /opt/kubernetes/
cp /root/kubernetes/server/bin/{kube-controller-manager,kube-scheduler,kube-apiserver,kubectl} /opt/kubernetes/bin/
==准备kube-node节点运行的文件==
cp /root/kubernetes/cluster/centos/node/scripts/{proxy.sh,kubelet.sh} /opt/kubernetes/
cp /root/kubernetes/server/bin/{kubelet,kube-proxy} /opt/kubernetes/bin
5.2.2 安装配置ETCD
因为是测试环境,我们暂且安装一个etcd单节点
yum install epel-release -y
yum install etcd
[root@etcd ~]# cat /etc/etcd/etcd.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://192.168.0.106:2379"
ETCD_NAME="k8setcd"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.0.106:2379"
systemctl start etcd
systemctl status etcd
systemctl enable etcd
journalctl -u etcd //查看日志
5.2.3 运行master组件
首先运行apiserver.sh
其次是scheduler.sh
再者是controller-manager.sh
==脚本中需要注意的地方==
脚本中的对应的MASTER_ADDRESS,ETCD_SERVERS,以及NODE_ADDRESS都有默认的值,如果我们在此修改成我们自己对应的信息ip,脚本运行不用添加参加,否则需要安装脚本中的顺序添加脚本参数
脚本中指定二进制以及组件的配置信息的存储位置,可以按情况修改
修改apiserver.sh脚本
[root@master kubernetes]# cat apiserver.sh |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'
MASTER_ADDRESS=${1:-"192.168.0.107"}
ETCD_SERVERS=${2:-"https://192.168.0.106:2379"}
SERVICE_CLUSTER_IP_RANGE=${3:-"10.10.10.0/24"}
ADMISSION_CONTROL=${4:-""}
cat
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com