最小化安装k8s
最小化安装k8s
1.前言
之前写过一篇二进制手工安装k8s的文章,过程复杂,搞了多日才安装成功。
直到最近,在github上看到一个使用Ansible安装k8s的工程,安装过程之简单着实让我惊讶,感谢作者的开源精神。
原项目地址: https://github.com/gjmzj/kubeasz
作者fork项目地址:https://github.com/qiujiahong/kubeasz
本文是读该项目的的读书笔记,相对原文稍微有一点改动,文中介绍了最小话安装的流程,读者如果需要做高可用安装可以参考github项目;
本文介绍最小化安装k8s;
安装系统版本: CentOS Linux release 7.5.1804 (Core)
2.基础系统配置
- 推荐内存2G/硬盘30G以上
- CentOS Linux release 7.5.1804 (Core)
- 配置基础网络、更新源、SSH登陆等
3.安装依赖工具
CentOS 7 请执行以下脚本:
# 文档中脚本默认均以root用户执行
# 安装 epel 源
yum install epel-release -y
# 安装依赖工具
yum install git python python-pip -y
3.ansible安装及准备
# 安装ansible (国内如果安装太慢可以直接用pip阿里云加速)
#pip install pip --upgrade
#pip install ansible
pip install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip install --no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 配置ansible ssh密钥登陆
ssh-keygen -t rsa -b 2048 回车 回车 回车
ssh-copy-id $IP #$IP为本虚机地址,按照提示输入yes 和root密码
4.安装kubernetes集群
- 4.1 下载项目源码
# 方式一:使用git clone
git clone https://github.com/gjmzj/kubeasz.git
mkdir -p /etc/ansible
mv kubeasz/* /etc/ansible
# 方式二:从发布页面 https://github.com/gjmzj/kubeasz/releases 下载源码解压到同样目录
- 4.2a 下载二进制文件
请从分享的百度云链接,下载解压到/etc/ansible/bin目录,如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包
tar zxvf k8s.1-9-8.tar.gz # 以安装k8s v1.9.8为例
mv bin/* /etc/ansible/bin
- 4.2b [可选]下载离线docker镜像
服务器使用内部yum源/apt源,但是无法访问公网情况下,请下载离线docker镜像完成集群安装;从百度云盘把basic_images_kubeasz_x.y.tar.gz下载解压到/etc/ansible/down目录
tar zxvf basic_images_kubeasz_0.2.tar.gz -C /etc/ansible/down
- 4.3 配置集群参数
cd /etc/ansible
cp example/hosts.allinone.example hosts
vim hosts # 根据实际情况修改此hosts文件,所有节点改成本机IP
# 验证ansible安装,正常能看到每个节点返回 SUCCESS
ansible all -m ping
- 4.4 开始安装
如果你对集群安装流程不熟悉,请阅读项目首页 安装步骤 讲解后分步安装,并对 每步都进行验证
# 分步安装
ansible-playbook 01.prepare.yml
ansible-playbook 02.etcd.yml
ansible-playbook 03.docker.yml
ansible-playbook 04.kube-master.yml
ansible-playbook 05.kube-node.yml
ansible-playbook 06.network.yml
ansible-playbook 07.cluster-addon.yml
# 一步安装
#ansible-playbook 90.setup.yml
- [可选]对集群节点进行操作系统层面的安全加固
ansible-playbook roles/os-harden/os-harden.yml,详情请参考os-harden项目
5.验证安装
如果提示kubectl: command not found,退出重新ssh登陆一下,环境变量生效即可
kubectl version
kubectl get componentstatus # 可以看到scheduler/controller-manager/etcd等组件 Healthy
kubectl get node # 可以看到单 node Ready状态
kubectl get pod --all-namespaces # 可以查看所有集群pod状态,默认已安装网络插件、coredns、metrics-server等
kubectl get svc --all-namespaces # 可以查看所有集群服务状态
# 可以看到
# kubernetes master(apiserver)组件 running
# kubernetes-dashboard is running at..
kubectl cluster-info
# 获取访问dashboard token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
# 使用浏览器访问前面``kubectl cluster-info ``获取的dashboard地址,最后一条命令获取的token登陆。
6.安装主要组件
# 安装kubedns,默认已集成安装
#kubectl create -f /etc/ansible/manifests/kubedns
# 安装dashboard,默认已集成安装
#kubectl create -f /etc/ansible/manifests/dashboard
- 登陆
dashboard可以查看和管理集群,更多内容请查阅dashboard文档
7.清理集群
以上步骤创建的K8S开发测试环境请尽情折腾,碰到错误尽量通过查看日志、上网搜索、提交issues等方式解决;当然如果是彻底奔溃了,可以清理集群后重新创建。
ansible-playbook 99.clean.yml
如果出现清理失败,类似报错:... Device or resource busy: '/var/run/docker/netns/xxxxxxxxxx',需要手动umount该目录后重新清理
$ umount /var/run/docker/netns/xxxxxxxxxx
$ ansible-playbook /etc/ansible/tools/clean_one_node.yml
最小化安装k8s的更多相关文章
- centos7 最小化安装没有ifconfig及修改网卡名enoxxx为ethX
问题: 1.最小化安装centos7后发现无ifconfig命令 想通过ifconfig查看ip地址发现ifconfig命令不存在,可通过命令 #ip addr //查看ip 或者 解决: ...
- centos 6.X minimal 系列最小化安装完成后,安装mono和jexus过程小记录
在使用虚拟机安装minimal版centos运行mono+jexus的时候,遇到了一些坑,记录一下,比如虚拟机访问不了网络,没wget命令没开放80端口,等等小问题,其他网上教程已经有mono+jex ...
- 生产服务器环境最小化安装后 Centos 6.5优化配置[转]
内容目录 centos6.5最小化安装后配置网络: IP地址, 网关, 主机名, DNS 更新系统源并且升级系统 系统时间更新和设定定时任 创建普通用户并进行sudo授权管理 修改SSH端口号和屏蔽r ...
- RHEL/CentOS 7最小化安装后需做的30件事情
导读 CentOS是一个工业标准的Linux发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...
- CentOS 7 最小化安装的网络配置
默认的最小化安装CentOS 7系统以后,是没有ipconfig这个命令的,依赖于net-tools工具包. 一.nmtui 这是一个类似于图形化的命令(和setup类似) 通过这个组件窗口可以设置各 ...
- 最小化安装centos7下配置网络
虚拟机操作系统:centos7.0 命令行模式 1.首先明确centos7在最小化安装完是不支持上网的,相应的查看网络以及修改网络参数是不能使用的,最常见的就是我们常用的ifconfig. 2.找到网 ...
- 最小化安装centos的init初始化脚本
#!/bin/bash #this script is appropriate .x(这脚本适合最小化安装6.x版本的系统) #you have already install the os read ...
- CentOS最小化安装后,增加GNOME桌面
背景:下载CentOS 7的安装包后,在虚拟机上安装. 上来就遇到一个问题:提示需要开启intel vt-x. 这个进入BIOS,在CPU的设置中开启即可. 然后怀着兴奋的心情,开始各种下一步的安装, ...
- centos7 最小化安装 无 ifconfig,netstat 的安装
centos7 最小化安装 无 ifconfig,netstat 的安装 centos7 最小化安装之后,默认是没有 ifconfig,netstat命令的: 我们可以直接使用 yum -y inst ...
随机推荐
- EZ 2017 12 30 2018noip第二次膜你赛
去年的比赛了,然而今天才改好. 总体难度适中,有大佬AK. 主要是自己SB第二题没想出来,然后又是可怜的100来分. T1 一道二分+数学的题目. 我们可以二分叫的次数,然后用公式(等差数列,公差都是 ...
- Oracle出现与并行相关的ORA-00600时的调查方法
出现了 ORA-00600[kxfpqsod_qc_sod], 如何调查呢? 例如:从trace 文件的 Call Stack,可以看到 Error: ORA-600 [kxfpqsod_qc_sod ...
- 微信小程序 倒计时
这两天在看微信小程序,参考了网上的资料,做了一个倒计时的练习,记录如下. 本文作者:罗兵 原地址:https://www.cnblogs.com/hhh5460/p/9981064.html 0.效果 ...
- 蓝牙Remove Bond的流程分析
此篇文章简单分析一下蓝牙解除配对在协议栈中的工作流程.分析的协议栈版本是Android8.0 协议栈的接口都定义在bluetooth.cc这个文件中: static int remove_bond(c ...
- 前端页面loading效果(CSS实现)
当首页内容或图片比较多时,加载时间会比较长,此时可能出现页面白屏的情况,用户体验较差.所以,在页面完全加载出来之前,可以考虑加入loading效果,当页面完全加载完后,是loading消失即可. 1. ...
- C# LINQ to XML示例
static void Main(string[] args) { // Create the data source by using a collection initial ...
- React学习-React初识
一.前言 为什么要去学习React呢,关于前端三大框架Angular,Vue,React其实都得去学吧,因为大家都在用啊,大家都再谈论啊,面试什么的都要求,没办法,曾几何时,大家都说求求大佬们别坑新了 ...
- 【开源.NET】 轻量级内容管理框架Grissom.CMS(第二篇前后端交互数据结构分析)
这是 CMS 框架系列文章的第二篇,第一篇开源了该框架的代码和简要介绍了框架的目的.作用和思想,这篇主要解析如何把sql 转成标准 xml 配置文件和把前端post的增删改数据规范成方便后台解析的结构 ...
- Js_闭包跟作用域
作用域的嵌套将形成作用域链,函数的嵌套将形成闭包.闭包与作用域链是 JavaScript 区别于其它语言的重要特性之一. 作用域 JavaScript 中有两种作用域:函数作用域和全局作用域. 在一个 ...
- Azkaban集群部署
一.部署模式 solo-server模式 (使用内置h2存储元数据): two-server模式 (1个webServer,1个execServer在同一服务器上,使用mysql存储元数据): mu ...