kubernetes学习记录(2)——基于Centos7.2的kubernetes集群自动安装与配置
来源:互联网 发布:如何应对压力 知乎 编辑:程序博客网 时间:2024/05/22 03:19
kubernetes集群的解决方案为:使用VMware Workstation Pro,安装3台Centos7 Minimal版(无图形化界面,防止电脑卡顿)的虚拟机。一台作为Master,另外两台作为Node。使用xshell软件操作虚拟机。
基于二进制文件离线安装的记录在kubernetes工作记录(1)——kubernetes1.7.4版集群的离线安装搭建过程记录 中,集成了CA认证、Flannel网络覆盖,经过多人测试,脚本没有问题。
通过xshell,可以使用rz(上传文件)、sz(下载文件)进行文本操作。需要先进行安装。Minimal版也不包括vim,需要自己安装。
yum -y install lrzsz vim
开发中一般最让人头疼的就是环境的搭建,在此,我初步学习了shell脚本的编写,虽然语法比较小白,但已能完成Master和Node服务器的自动安装与配置。下面分别进行记录。脚本中的IP等配置需要自己修改
1)Master端的安装与配置
采用的shell脚本为init-master-test.sh
#!/bin/bash#关闭防火墙,并关闭防火墙的开机自启动安全的做法是在防火墙上配置各组件需要相互通信的端口号,这里选择直接禁用防火墙。systemctl stop firewalldsystemctl disable firewalld#禁用selinux,修改/etc/selinux/config#SELINUX=enforcing改为SELINUX=disabledecho "update /etc/selinux/config"sed -i 's/enforcing/disabled/g' /etc/selinux/config#安装etcd和kubernetes-master#etcd为kubernetes集群的主数据库,配置文件通常不需要特别的参数配置,默认将监听127.0.0.1:2379地址供客户端链接使用,shell脚本执行后,可以通过etcdctl cluster-health验证etcd是否正确启动yum -y install etcd kubernetes-master#修改apiserver的配置文件/etc/kubernetes/apiserver#修改-insecure-bind-address(apiserver绑定主机的非安全IP地址,改为masterip表示绑定master地址)echo "update /etc/kubernetes/apiserver"sed -i 's!KUBE_API_ADDRESS="--insecure-bind-address=127.0.0.1"!KUBE_API_ADDRESS="--insecure-bind-address=192.168.121.143"!' /etc/kubernetes/apiserver #修改kubernetes的配置文件/etc/kubernetes/config#KUBE_MASTER:指定apiserver的url地址。我的master服务器ip为192.168.121.143echo "update /etc/kubernetes/config"sed -i 's!127.0.0.1!192.168.121.143!' /etc/kubernetes/configsystemctl daemon-reload#让etcd kube-apiserver kube-scheduler kube-controller-manager随开机启动systemctl enable etcd kube-apiserver kube-scheduler kube-controller-manager#启动或重启etcd kube-apiserver kube-scheduler kube-controller-managersystemctl restart etcd kube-apiserver kube-scheduler kube-controller-manager
在root权限下执行脚本。
注意,在执行脚本之前,需要修改脚本里的Master IP地址
注意编码格式,有时脚本执行错误是因为编码格式的原因。如果直接在vim里编辑可以避免,在windows下编辑,自己注意转码。
sh init-master-test.sh
执行完成后,验证Kubernetes Master各个组件的健康状态。我的Master IP为192.168.121.143。
kubectl -s http://192.168.121.143:8080 get componentstatus
如果该指令执行错误,则安装配置过程出现了错误。
至此,Master端算是简易安装配置起来了,覆盖网络、DNS、安全认证等内容以后再研究。
2)Node端的安装与配置
采用的shell脚本为init-node-test.sh
#!/bin/bash#关闭防火墙,并关闭防火墙的开机自启动#安全的做法是在防火墙上配置各组件需要相互通信的端口号,这里选择直接禁用防火墙。systemctl stop firewalldsystemctl disable firewalld#禁用selinux,修改/etc/selinux/config#SELINUX=enforcing改为SELINUX=disabledecho "update /etc/selinux/config"sed -i 's/enforcing/disabled/g' /etc/selinux/config#安装kubernetes-node(会自动安装docker)yum -y install kubernetes-node#修改kubernetes的配置文件/etc/kubernetes/config#KUBE_MASTER:指定apiserver的url地址。我的master服务器ip为192.168.121.143echo "update /etc/kubernetes/config"sed -i 's!127.0.0.1!192.168.121.143!' /etc/kubernetes/config#改成网易蜂巢云的镜像源,加速下载docker镜像echo "update /etc/docker/daemon.json"sed -i 's!{}!{"registry-mirrors":["http://hub-mirror.c.163.com"],"insecure-registries":["192.168.121.140:5000"]}!' /etc/docker/daemon.json#修改kubelet的配置文件/etc/kubernetes/kubelet#修改KUBELET_HOSTNAME,在此我改成了node ip#修改KUBELET_API_SERVER,我的Master地址为192.168.121.143echo "update /etc/kubernetes/kubelet"sed -i 's!KUBELET_HOSTNAME="--hostname-override=127.0.0.1"!KUBELET_HOSTNAME="--hostname-override=192.168.121.144"!' /etc/kubernetes/kubeletsed -i 's!KUBELET_API_SERVER="--api-servers=http://127.0.0.1:8080"!KUBELET_API_SERVER="--api-servers=http://192.168.121.143:8080"!' /etc/kubernetes/kubeletsed -i 's!KUBELET_ARGS=""!KUBELET_ARGS="--cluster_dns=10.254.10.2 --cluster_domain=cluster.local"!' /etc/kubernetes/kubeletsed -i 's!KUBELET_ADDRESS="--address=127.0.0.1"!KUBELET_ADDRESS="--address=192.168.121.144"!' /etc/kubernetes/kubeletsystemctl daemon-reload systemctl restart docker kubelet kube-proxysystemctl enable docker kubelet kube-proxy
root权限下执行脚本。
注意,每个Node在执行脚本之前,需要修改脚本里的Master IP地址,以及KUBELET_HOSTNAME改为Node的HostName,如果HostName不是IP地址的话,需要在Master配置HOST和IP的映射
sh init-node-test.sh
安装部署完成后,在Master上验证运行
kubectl get nodes
至此,Kubernets基本集群搭建完毕。
- kubernetes学习记录(2)——基于Centos7.2的kubernetes集群自动安装与配置
- kubernetes学习记录(9)——集群基于CA签名的安全设置
- kubernetes学习1--centOS7.2使用yum安装kubernetes
- kubernetes(2):Centos7 安装 kubernetes 1.5 版本
- kubernetes学习记录(13)——网上集群基于CA签名安全设置的两种方式对比
- centos7安装配置Kubernetes
- Kubernetes学习总结(2)——Kubernetes设计架构
- kubernetes学习记录(1)——kubernetes初理解
- Centos7.2 Kubernetes 集群在centos 上安装步骤
- Kubernetes学习系列之简单集群安装与配置
- kubernetes 1.6.2安装记录
- kubernetes学习记录(5)——服务发现机制与Cluster DNS的安装(无CA认证版)
- kubernetes工作记录(1)——kubernetes1.7.4版集群的离线安装搭建过程记录
- 基于Kubernetes(k8s)的RabbitMQ 集群
- kubernetes安装与配置
- CentOS7(mini) 安装 Kubernetes 集群(kubeadm方式)
- Centos7.3Kubernetes集群安装部署
- Centos7部署Kubernetes集群
- C++拷贝构造的优化
- android开发教程,android开发入门教程
- 二叉树的最大节点
- Servlet--Servlet转发和重定向
- 设计模式之类对象结构型 — ADAPTER (适配器)模式
- kubernetes学习记录(2)——基于Centos7.2的kubernetes集群自动安装与配置
- C语言之变量(笔记四)
- maven(二)
- leetcode(617). Merge Two Binary Trees
- android killer插入log打印加密字符串
- poj 3070 Fibonacci
- ionic 自定义插件 使用.aar
- mysql 5.7 不能正常显示错误信息
- 设计模式之单例模式