Kubernetes学习之路(26)之kubeasz+ansible部署集群
目录
- 1、环境说明
- 2、准备工作
- 3、分步骤安装
- 3.1、创建证书和安装准备
- 3.2、安装etcd集群
- 3.3、安装docker
- 3.4、安装master节点
- 3.5、安装node节点
- 3.6、部署集群网络
- 3.7、部署集群插件(dns,dashboard)
- 3.8、测试DNS解析
学习文档:https://github.com/gjmzj/kubeasz/
1、环境说明
IP | 主机名 | 角色 | 虚拟机配置 |
---|---|---|---|
192.168.56.11 | k8s-master | deploy、master1、lb1、etcd | 4c4g |
192.168.56.12 | k8s-master2 | master2、lb2 | 4c4g |
192.168.56.13 | k8s-node01 | etcd、node | 2c2g |
192.168.56.14 | k8s-node02 | etcd、node | 2c2g |
192.168.56.110 | vip | ||
系统内核 | 3.10 | docker版本 | 18.09 |
k8s版本 | 1.13 | etcd版本 | 3.0 |
2、准备工作
- 四台机器,全部执行:
yum install -y epel-release
yum update -y
yum install python -y
- deploy节点安装ansible并配置密钥认证
yum install -y ansible
ssh-keygen
for ip in 11 12 13 14;do ssh-copy-id 192.168.56.$ip;done
- deploy节点编排K8S
[root@k8s-master ~]# git clone https://github.com/gjmzj/kubeasz.git
[root@k8s-master ~]# mv kubeasz/* /etc/ansible/
从百度云网盘下载二进制文件 https://pan.baidu.com/s/1c4RFaA#list/path=%2F
可以根据自己所需版本,下载对应的tar包,这里我下载1.13
经过一番折腾,最终把k8s.1-13-5.tar.gz的tar包放到了depoly上
[root@k8s-master ~]# tar -zxf k8s.1-13-5.tar.gz
[root@k8s-master ~]# mv bin/* /etc/ansible/bin/
- 配置集群参数
[root@k8s-master ~]# cd /etc/ansible/
[root@k8s-master ansible]# cp example/hosts.m-masters.example hosts
cp: overwrite ‘hosts’? y
[root@k8s-master ansible]# vim hosts #根据实际情况的ip进行更改
[deploy]
192.168.56.11 NTP_ENABLED=no #设置集群是否安装 chrony 时间同步[etcd] #etcd集群请提供如下NODE_NAME,注意etcd集群必须是1,3,5,7...奇数个节点
192.168.56.11 NODE_NAME=etcd1
192.168.56.13 NODE_NAME=etcd2
192.168.56.14 NODE_NAME=etcd3[kube-master]
192.168.56.11
192.168.56.12[kube-node]
192.168.56.13
192.168.56.14[lb] # 负载均衡(目前已支持多于2节点,一般2节点就够了) 安装 haproxy+keepalived
192.168.56.12 LB_ROLE=backup
192.168.56.11 LB_ROLE=master## 集群 MASTER IP即 LB节点VIP地址,为区别与默认apiserver端口,设置VIP监听的服务端口8443
# 公有云上请使用云负载均衡内网地址和监听端口
[all:vars]
DEPLOY_MODE=multi-master
MASTER_IP="192.168.56.110" #设置vip
KUBE_APISERVER="https://{{ MASTER_IP }}:8443"
CLUSTER_NETWORK="flannel"
SERVICE_CIDR="10.68.0.0/16"
CLUSTER_CIDR="172.20.0.0/16"
NODE_PORT_RANGE="20000-40000"
CLUSTER_KUBERNETES_SVC_IP="10.68.0.1"
CLUSTER_DNS_SVC_IP="10.68.0.2"
CLUSTER_DNS_DOMAIN="cluster.local."
bin_dir="/opt/kube/bin"
ca_dir="/etc/kubernetes/ssl"
base_dir="/etc/ansible"#修改完成后,测试hosts
[root@k8s-master ansible]# ansible all -m ping
192.168.56.12 | SUCCESS => {"changed": false, "ping": "pong"
}
192.168.56.13 | SUCCESS => {"changed": false, "ping": "pong"
}
192.168.56.14 | SUCCESS => {"changed": false, "ping": "pong"
}
192.168.56.11 | SUCCESS => {"changed": false, "ping": "pong"
}
3、分步骤安装
3.1、创建证书和安装准备
[root@k8s-master ansible]# ansible-playbook 01.prepare.yml
3.2、安装etcd集群
[root@k8s-master ansible]# ansible-playbook 02.etcd.yml
[root@k8s-master ansible]# bash#验证etcd集群状态
[root@k8s-master ansible]# systemctl status etcd#在任一 etcd 集群节点上执行如下命令
[root@k8s-master ansible]# for ip in 11 13 14;do ETCDCTL_API=3 etcdctl --endpoints=https://192.168.56.$ip:2379 --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem endpoint health;done
https://192.168.56.11:2379 is healthy: successfully committed proposal: took = 7.967375ms
https://192.168.56.13:2379 is healthy: successfully committed proposal: took = 12.557643ms
https://192.168.56.14:2379 is healthy: successfully committed proposal: took = 9.70078ms
3.3、安装docker
[root@k8s-master ansible]# ansible-playbook 03.docker.yml
3.4、安装master节点
[root@k8s-master ansible]# ansible-playbook 04.kube-master.yml #查看进程状态
[root@k8s-master ansible]# systemctl status kube-apiserver
[root@k8s-master ansible]# systemctl status kube-controller-manager
[root@k8s-master ansible]# systemctl status kube-scheduler
[root@k8s-master ansible]# kubectl get componentstatus #查看集群状态
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true"}
etcd-1 Healthy {"health":"true"}
etcd-2 Healthy {"health":"true"}
3.5、安装node节点
[root@k8s-master ansible]# ansible-playbook 05.kube-node.yml
[root@k8s-master ansible]# systemctl status kubelet
[root@k8s-master ansible]# systemctl status kube-proxy
[root@k8s-master ansible]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
192.168.56.11 Ready,SchedulingDisabled master 6m56s v1.13.5
192.168.56.12 Ready,SchedulingDisabled master 6m57s v1.13.5
192.168.56.13 Ready node 40s v1.13.5
192.168.56.14 Ready node 40s v1.13.5
3.6、部署集群网络
[root@k8s-master ansible]# ansible-playbook 06.network.yml
[root@k8s-master ansible]# kubectl get pod -n kube-system #查看flannel相关pod
NAME READY STATUS RESTARTS AGE
kube-flannel-ds-amd64-856rg 1/1 Running 0 115s
kube-flannel-ds-amd64-j4542 1/1 Running 0 115s
kube-flannel-ds-amd64-q9cmh 1/1 Running 0 115s
kube-flannel-ds-amd64-rhg66 1/1 Running 0 115s
3.7、部署集群插件(dns,dashboard)
[root@k8s-master ansible]# ansible-playbook 07.cluster-addon.yml [root@k8s-master ansible]# kubectl get svc -n kube-system #查看服务
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
heapster ClusterIP 10.68.29.48 <none> 80/TCP 64s
kube-dns ClusterIP 10.68.0.2 <none> 53/UDP,53/TCP,9153/TCP 71s
kubernetes-dashboard NodePort 10.68.117.7 <none> 443:24190/TCP 64s
metrics-server ClusterIP 10.68.107.56 <none> 443/TCP 69s[root@k8s-master ansible]# kubectl cluster-info #查看集群信息
Kubernetes master is running at https://192.168.56.110:8443
CoreDNS is running at https://192.168.56.110:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
kubernetes-dashboard is running at https://192.168.56.110:8443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.[root@k8s-master ansible]# kubectl top node #查看节点资源使用率
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
192.168.56.11 523m 13% 2345Mi 76%
192.168.56.12 582m 15% 1355Mi 44%
192.168.56.13 182m 10% 791Mi 70%
192.168.56.14 205m 11% 804Mi 71%
一步ansible安装k8s集群命令如下:
ansible-playbook 90.setup.yml
3.8、测试DNS解析
[root@k8s-master ansible]# kubectl run nginx --image=nginx --expose --port=80
[root@k8s-master ansible]# kubectl run busybox --rm -it --image=busybox /bin/sh
/ # nslookup nginx.default.svc.cluster.local
Server: 10.68.0.2
Address: 10.68.0.2:53Name: nginx.default.svc.cluster.local
Address: 10.68.149.79
转载于:https://www.cnblogs.com/linuxk/p/10762832.html
Kubernetes学习之路(26)之kubeasz+ansible部署集群相关推荐
- Kubernetes学习之路目录
Kubernetes基础篇 环境说明 版本说明 系统环境 Centos 7.2 Kubernetes版本 v1.11.2 Docker版本 v18.09 Kubernetes学习之路(一)之概念和架构 ...
- 内网环境下手动部署kubernetes(v1.26.3)高可用集群
这篇博客主要是记录了手动部署一个高可用的Kubernetes集群的过程.旨在帮助自己及初学者学习kubernetes,并记录下具体的操作过程和总结的知识点.文中可能存在一些问题或不足之处,仅供参考. ...
- 云服务器-异地部署集群服务-Kubernetes(K8S)-网络篇
重要!!! 注意: 本文使用二进制安装,过程非常繁琐,所以不推荐大家使用这种安装方式.请使用更简洁的kubeadm安装,具体请参考 云服务器-异地部署集群服务-Kubernetes(K8S)-Kube ...
- Kubernetes v1.13 二进制部署集群
Kubernetes v1.13 二进制部署集群(HTTPS+RBAC) 官方提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kube ...
- Kubernetes入门:Pod、节点、容器和集群都是什么?
文章来源地址: http://mini.eastday.com/a/180103191329488.html?qid=02263 Kubernetes正迅速成为云计算中部署和管理软件的新标准.不过,K ...
- mongo学习笔记四:Mongodb的三种集群(Replica Set)
Replica Set 中文翻译叫做副本集,不过我并不喜欢把英文翻译成中文,总是感觉怪怪的.其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,提供的前提就是数据 ...
- 大数据学习笔记第1课 Hadoop基础理论与集群搭建
大数据学习笔记第1课 Hadoop基础理论与集群搭建 一.环境准备 二.下载JDK 三.安装JDK 四.下载hadoop 五.安装hadoop集群 六.打通3台服务器的免密登录 七.hadoop集群配 ...
- Kubernetes学习之路(一)之概念和架构解析和证书创建和分发
1.Kubernetes的重要概念 转自:CloudMan老师公众号<每天5分钟玩转Kubernetes>https://item.jd.com/26225745440.html Clus ...
- Kubernetes学习之路(四)之Node节点二进制部署
K8S Node节点部署 1.部署kubelet (1)二进制包准备 [root@linux-node1 ~]# cd /usr/local/src/kubernetes/server/bin/[ro ...
最新文章
- AC日记——计算多项式的导函数 openjudge 1.5 38
- 编码整洁之道:专业程序员的行为准则(英文版)
- mysql数据库常用字段类型_快速了解MySQL数据库常用字段类型
- 【Splay】文艺平衡树(金牌导航 Splay-2)
- 软件工程---3.敏捷软件开发
- matlab 中 Transform,变换数据存储 - MATLAB transform
- MathWorks 中国
- CToolBarCtrl工具栏设置总结(转)
- 如何降低BI系统建设的风险
- 现实世界与虚拟世界的差别在哪里
- Python对zip、tgz、rar压缩包的解压与读取
- 什么是内网、外网?内网、外网有啥区别?
- google浏览器截取长图
- 如何修改电脑的ip地址
- VIN码/车架号的详解,车架号识别,VIN码识别,OCR车架号识别能带来什么
- C语言五子棋双人模式
- 什么是360度绩效评估反馈?
- 如何利用巨象指纹浏览器在twitter上找到精准客户
- MacBook 更新Big Sur后,虚拟机无法运行时显示该主机 CPU 类型不支持虚拟化性能计数器,模块“VPMC”启动失败,未能启动虚拟机
- MySQL 安装失败 Failed to find valid data directory
- 通过DNS2SOCKS建立本地稳定无污染DNS
热门文章
- 坡度土方计算案例_【攻略】如何解锁方格网法土方计算?
- java类对象转化成字符串_String类型字符串(xml格式)转换成java对象类型
- Non-Rigid Registration Under Isometric Deformations
- PDE9 wave equation: general solution
- MATLAB中三维曲面命令
- 【matlab】元胞数组(使用celldisp显示元胞数组)
- 徐州工程学院计算机报名,2019年3月江苏徐州工程学院计算机等级考试报名时间...
- java openresty 调用_Openresty使用zlib解压缩response body
- 给出中序和前序求后序Java,已知二叉樹前序,中序遍歷,求后序遍歷,java實現...
- 多个python脚本同时执行_用shell同时启动多个python脚本