本文共 3149 字,大约阅读时间需要 10 分钟。
本文参考 http://docs.kubernetes.org.cn/109.html 和 http://www.qfdmy.com/
什么是Kubernees
Kubernees,简称k8s,ks是容器集群管理系统,是一个开源的平台,可以实现容器的自动化部署,自动扩缩容,维护等功能优势
快速部署应用 快速扩展应用 无缝对接新功能 节省资源,优化硬件资源的使用特点
可移植: 支持公有云,私有云,混合云,多重云(multi-cloud) 可扩展: 模块化, 插件化, 可挂载, 可组合 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展传统应用部署和容器部署的区别
传统的应用部署
是通过插件或者脚本来安装应用,这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。通过部署容器方式实现
沙箱机制,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移这里要注意的是,k8s并部署传统的Paas系统,Kubernetes不限制支持应用的类型,不限制应用框架,不限制受支持的语言,满足1要素轻应用,不提供中间件,不部署源码不编译应用,不提供或授权一个全面的应用程序配置语言/系统,也不提供任何机器配置,维护,但是他允许用户选择自己的日志,监控,另外,Kubernetes不仅仅是一个“编排系统”;它消除了编排的需要。“编排”的定义是指执行一个预定的工作流:先执行A,之B,然C。相反,Kubernetes由一组独立的可组合控制进程组成。怎么样从A到C并不重要,达到目的就好。当然集中控制也是必不可少,方法更像排舞的过程。这使得系统更加易用、强大、弹性和可扩展。
准备工作
关闭交互空间swapoff -a
避免开机启动交换空间
# 注释 swap 开头的行 vi /etc/fstab
关闭防火墙
ufw disable
配置DNS
# 取消 DNS 行注释,并增加 DNS 配置如:114.114.114.114,修改后重启下计算机 vi /etc/systemd/resolved.conf
安装 Docker
前面有文章 在 /etc/docker/daemon.json 中写入如下内容(以下配置修改 cgroup 驱动为 systemd,满足 K8S 建议){ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "registry-mirrors": [ "https://k7da99jp.mirror.aliyuncs.com/", "https://dockerhub.azk8s.cn", "https://registry.docker-cn.com" ], "storage-driver": "overlay2" }
安装三个 Kubernetes 必备工具,分别为 kubeadm,kubelet,kubectl
加粗样式# 安装系统工具 apt-get update && apt-get install -y apt-transport-https # 安装 GPG 证书 curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - # 写入软件源;注意:我们用系统代号为 bionic,但目前阿里云不支持,所以沿用 16.04 的 xenial cat << EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF # 安装 apt-get update && apt-get install -y kubelet kubeadm kubectl
设置时区
dpkg-reconfigure tzdata
时间同步
# 安装 ntpdateapt-get install ntpdate# 设置系统时间与网络时间同步(cn.pool.ntp.org 位于中国的公共 NTP 服务器)ntpdate cn.pool.ntp.org# 将系统时间写入硬件时间hwclock --systohc
主要作用是防止重启后主机名还原
vi /etc/cloud/cloud.cfg # 该配置默认为 false,修改为 true 即可 preserve_hostname: true编辑 vi /etc/netplan/50-cloud-init.yaml 配置文件,修改内容如下
network: ethernets: ens33: addresses: [192.168.23.132/24] gateway4: 192.168.23.2 nameservers: addresses: [192.168.23.2] version: 2
# 修改主机名 hostnamectl set-hostname kubernetes-master # 配置 hosts cat >> /etc/hosts << EOF 192.168.23.132 kubernetes-master EOF
最后ping一下百度
ping www.baidu.com ,看看dns也没有配置失败转载地址:http://bnkgn.baihongyu.com/