kuberNetes
官方中文文档地址 : https://kubernetes.io/zh/docs/home/
部署化进化: 最初的单台服务器进化至目前的docker部署
问题: 对于这种服务器隔离的docker容器 如何管理编排 -->出现k8s进行处理
提供:
- 服务发现,负载均衡
- 自动部署回滚
- 自动二进制打包
- 自动修复
- 自动伸缩
- 密钥配置管理
组件:
- master 节点
- node 节点
主从方式:master管理多个node节点 所有对于容器编排通过k8s提供的暴露api 调用master处理,由master管理调度node处理
web ui : 图形化界面命令
kubectl:命令行接入命令
etcd :存储 key vlue 键值对
api server: 所有操作通过此服务通过主master进行scheduler任务调度
kubelet:node 节点代理 负责容器的生命周期,同时负责网络卷轴
kube proxy:容器的网络代理,可以理解为网络路由
pod:一个组容器组
container:容器组成pod的单元
replicationcontroller,由此组件进行任务处理
总结:
- (一) 用户通过kubectl 输入命令
- (二) 调用api Server到达Master任务。
- (三) Master进行权限认证ok。进行任务受理,交给schduler进行任务调度。并把要做的事情写入etcd
- (四) schduler收到 etcd调度通知下面的小弟controller进行任务处理。
- (五)controller告知kubelet各个node节点进行处理,
- (六)node节点又kubelet进行任务编排。通步kube proxy进行网络拉通。
- (七)pod同步下面的container进行创建消费具体做什么
- (八)执行通过etcd写入的要求进行处理,并把结果写入etcd
具体流程如下
安装 minikube : https://github%E3%80%82com/kubernetes/minikube/releases
下载得到:minikube-windows-amd64.exe 改名为 minikube.exe
运行: minikube start --vm-driver=virtualbox --registry-mirror=https://registry.docker-cn.com
关于集群安装:kubeadm
kubeadm init
kubeadm join <Master 节点的 ip 和端口>
此部分文章同步为官网的 集群安装 地址: https://kubernetes.io/zh/docs/setup/
部署 DashBoard Web 页面
准备工作
使用vagrant 创建三个虚拟机,虚拟器启动时 设置统一网段 举例:192.168.20.1
命令脚本
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "k8s-node#{i}" do |node|
node.vm.box="centos/7"
node.vm.hostname="k8s-node#{i}"
node.vm.network "private_network", ip:"192.168.20.#{99+i}", netmask:"255.255.255.0"
node.vm.provider "virtaulbox" do |v|
v.name="k8s-node#{i}"
v.memory=4096
v.cpus =4
end
end
end
end
数据同步到 vagrant file 文件
cmd
# 打开电脑控制台命令
vagrant up
#启动vagrant
vagrant ssh k8s-node1
su root
#默认密码vagrant
vagrant
# 配置ssh连接权限
vi /etc/ssh/sshd_config
#修改 PasswordAuthentication 为yes 重启一下三台虚拟机
service sshd restart
shell 连接 三台虚拟机
ip route show
ip addr
查看网段
node 安装 docker kubeadm kubelet kubectl