Kubertnetes

用途

容器的集群化解决方案,资源管理器

特点:
  • Go语言开发,解释型语言,轻量级,消耗资源少
  • 开源
  • 弹性伸缩
  • 负载均衡:ipvs

K8S组件说明

k8s前身borg

image-20200807212555136

组件

image-20200807212846780

etcd
  • 可信赖的分布式键值存储服务,为集群存储一些关键数据
  • 持久化

    • v2将数据写入内存,1.11版本以弃用
    • v3将数据写入数据库
  • 采用http协议,架构图如下

    image-20200807213302969

控制器ControllerManager

维持副本期望数目

Schedule

介绍任务,选择合适节点分配任务

Kubelet

直接跟容器引擎交互实现容器的生命周期管理

kube-proxy

把规则写入iptables,ipvs,实现服务映射访问

其他插件

CoreDNS

为集群中svc创建域名ip的对应解析

DashBoard

b/s结构的访问体系

Ingress controller

官方只有四层代理,ingress实现7层代理

Federation

多k8s统一管理功能

Prometheus

提供K8s集群的监控能力

ELK

k8s日志分析统一接入平台

基本概念

Pod

网络栈,一个pod内的容器共享一个地址,

  • 自助式pod
  • 控制器管理的pod
网络通信方式

image-20200913212731395

image-20200913212904953

安装

安装依赖包

yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wegt vim net-tools git

设置防火墙为iptables 并设置空规则

systemctl stop fireward && systemctl disable firewalld
yum -y install iptables-service && systemctl start iptables
systemctl enable iptables && iptables -F && service iptables save

关闭selinux

swapoff -a && sed -i 'swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0 && sed -i 's/^SELINUXS=.*/SELINUX=disabled/' /etc/selinux/config

调整内核参数

# 必须的参数
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv6.conf.all.disable_ipv6=1
# 放在/etc/sysctl.d/kubernetes.conf

关闭不需要的服务

systemctl stop postfix && systemctl disable postfix

设置日志

mkdir /var/log/journal

资源清单

pod控制器

服务发现

存储

调度器

集群安全机制

HELM

运维

标签: none

评论已关闭