kubernetes实践指南(⼀)⼀、Docker相关内容
⼆、Kubernets简介
三、kuadm安装k8s
⼀、Docker相关内容
1、Docker⼯具集
Docker三剑客:Compse、swarm、machine
docker compose:适⽤于单机,容器编排定义
docker swarm:对所有Docker宿主机资源整合,集管理
docker machine:初始化Docker环境,跨平台⽀持
mesos+marathon
mesos:主机资源整合分配调度管理⼯具的框架
marathon:基于Mesos的私有PaaS
kubernets:
2、Compse
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
-
logvolume01:/var/log
links:
- redis
redis:
image: redis
volumes:
logvolume01: {}
3、CI、CD&CD
CI:持续集成Continnuous Intergration //Dev提交代码->测试->通过[合并主线到代码仓库]
CD:持续交付Continnuous Delivery //将应⽤发布出去(灰度) ⽬的是最⼩化部署或发布过程中团队固有的摩擦
CD:持续部署Continnuous Deployment //⼀种更⾼程度的⾃动化,⽆论何时代码有较⼤改动,都会⾃动进⾏构建/部署
图1
⼆、Kubernets简介
1、k8s特性:
1)⾃动装箱、⾃我修复,⽔平扩展,服务发现和负载均衡,⾃动发布和回滚
2)密钥和配置管理
之前是基于原⽣file⽂件修改配置,最好是基于环境变量修改 //entrypoint 脚本(⽤户传递的环境变量替换到配置⽂件中)
镜像启动时,动态加载配置信息 //
假如要修改⼀个配置 //ansible推送 或者 应⽤程序的配置信息保存在配置服务器上,启动时加载(修改只需要修改配置服务器即可) 3)存储编排、任务批量处理
2、集模型:
有中⼼节点 //master+多slave,k8s:⼀般三个master(HA),其他都是node
⽆中⼼节点 //任何⼀个shard,都可以接受请求,并路由到其他节点
控制器:监控容器状态->有控制器管理器->控制器管理器(冗余HA)
Controller manager:监控每⼀个控制器的健康,Controller manager⾃⾝做冗余
3、组件
图4:
这个协议连接了两个组件:容器管理系统和⽹络插件。它们之间通过 JSON 格式的⽂件进⾏通信,实现容器的⽹络功能。具体的事情都是插件来实现的,包括:创建容器⽹络空间(network namespace)、把⽹络接⼝(interface)放到对应的⽹络空间、给⽹络接⼝分配 IP 等等。
flannel:⽀持⽹络配置,不⽀持⽹络策略,简单
calico:⽹络配置、⽹络策略,较为复杂
canel:集合flannel和calico
Docker公司提供 CNM 标准。⽬前 CNM 只能使⽤在 docker 中,CNI应⽤场景更⼴
图6
有兴趣的可以了解下
三、kuadm安装k8s
图3:nodeselector
安装⽅式1:使⽤进程⽅式,接受systemctl管控(⽐较繁琐)
安装⽅式2:使⽤kubeadm⽅式,所有节点都安装docker和kubelet,k8s的管控节点也运⾏为Pod
controller-manager,scheduler,apiserver,etcd
kube-proxy,kubelet,flannel都要运⾏为Pod
1、实验环境:
============================
主机ip 主机名主机配置
192.168.170.135 master (2c2g)
192.168.170.137 node1 (2c2g)
192.168.170.139 node2 (2c2g)
============================
2、基础环境准备(所有节点都要安装)
1)hostnamectl set-hostname $hostname //设置主机名
2)设置hosts
[root@master ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.170.135 matser
192.168.170.137 node1
192.168.170.139 node2
3)关闭iptable和SELinux
systemctl stop fireward;systemctl disbale fireward
setenforce 0;sed -i 's@SELINUX=.*@SELINUX=disabled@' /etc/selinux/config
4)关闭swap
swapoff -a;sed -i 's/.*swap.*/#&/' /etc/fstab
5)配置yum
kubernets源
[kubernetes]
name=Kubernetes
baseurl=mirrors.aliyun/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=mirrors.aliyun/kubernetes/yum/doc/yum-key.gpg mirrors.aliyun/kubernetes/yum/doc/rpm-package-key.gpg
Docker源:
wget mirrors.aliyun/docker-ce/linux/po -O /pos.po
6)安装⼯具
yum install docker
yum -y install kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable docker //node1和node2;Kubelet负责与其他节点集通信,并进⾏本节点Pod和容器⽣命周期的管理
3、配置master
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论