写点什么

Kubernetes 教程之新手安装必看(快速浏览少走弯路),java 集合详解和集合面试题目

作者:Java高工P7
  • 2021 年 11 月 10 日
  • 本文字数:2009 字

    阅读完需:约 7 分钟

  • APISERVER :所有程序访问的统一入口

  • ControllerManager:维持副本期望数目

  • Scheduler:负责介绍任务,选择合适节点进行任务分配

  • ETCD:键值对数据库 存储 k8s 集群所有的重要信息

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

  • Kube-proxy:负责把规则写入 IPABLES、IPVS 实现服务映射访问的

  • CORENDS:为集群中的 SVC 创建一个域名 IP 的对应关系解析

  • DASHBOARD: 给 K8S 集群提供一个 B/S 结构访问体系

  • INGRESS CONTROLLER(第三方): INGRESS 实现 7 层代理

  • FEDERATION: 提供一个可以跨集群中心多 K8S 统一管理功能

  • PROMETHEUS: 提供 K8S 集群的监控能力

  • ELK : 提供 K8S 集群日志统一分析平台


Pod




  • POD(可以理解为):自主式 POD 和控制器管理的 POD


  1. POD 内的端口不能有冲突

  2. POD 内网络公用、磁盘公用


控制器




  • ReplicationController: 保证节点数量

  • ReplicaSet: 支持打标签,易于管理

  • Deployment:支持滚动更新

  • HPA :弹性伸缩

  • 无状态服务:nginx、tomcat 等

  • 有状态服务:mysql、mongoDB 等

  • StateFulset:解决有状态服务的问题


  1. 稳定持久化存储

  2. 稳定网络标志(podName 和 HostName)

  3. 有序部署:保证 pod 按照一定顺序部署

  4. 有序回收:保证 pod 按照一定顺序删除


  • DaemonSet: 确保全部或部分 node 上运行一个 Pod 副本!


自我理解为当新加一个 node 后,为该 node 分配一个 Pod 副本,


如果当前 node 有 Pod,则当前 node 上的 Pod 在其他 node 上也会分配 Pod 副本!


  • job:处理批处理任务,可判断程序是否正常退出(类似 java 的事务吧???)


服务发现




客户端通过 Service 的 IP:port 访问 service 上的服务。


service 则通过标签及一定算法来连接 Pod。


Kubernetes 网络




  • 特点:扁平化网络

  • Pod 通讯:


  1. Pod 内容器通过 pause

  2. Pod 间可以通过:Overlay 网络模式

  3. Pod 与 Service:各个 node 的 iptables 规则(防火墙协议)\ LVS


  • flannel 网络服务:为 k8s 创建一个 overlay 网络。

  • overlay 网络:为每一个容器在集群中分配一个虚拟 IP,不同节点的容器之间通过虚拟 IP 通信!





k8s 安装




  • 关闭防火墙:


systemctl stop firewalld


systemctl disable firewalld


  • 关闭 selinux:


(博客文档格式可能有问题,如果出问题,则尝试手敲该命令)


sed -i 's/enforcing/disabled/' /etc/selinux/config


setenforce 0


  • 关闭 swap:(云主机貌似默认关了)


swapoff -a


  • 设置主机名


hostnamectl set-hostname master


hostnamectl set-hostname k8s-node1


hostnamectl set-hostname k8s-node2


  • **设置 host 绑定关系(这里有个坑,公网 IP 貌似 kubeadm init 时会报错【需要开相关端口】,


(内网 IP 则 OK)**


公网:


cat >> /etc/hosts << EOF


121.36.162.18 k8s-master


119.3.29.5 k8s-node1


121.36.131.4 k8s-node2


EOF


内网:


cat >> /etc/hosts << EOF


192.168.0.179 k8s-master


192.168.0.25 k8s-node1


192.168.0.93 k8s-node2


EOF


  • 设置流量转发(官网建议):


cat > /etc/sysctl.d/k8s.conf << EOF


net.bridge.bridge-nf-call-ip6tables = 1


net.bridge.bridge-nf-call-iptables = 1


EOF


执行生效:


sysctl --system


  • 安装 docker:


配置阿里云源:


wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo


安装 docker(最好是 18 及以上版本,否则可能会…):


yum -y install docker-ce-18.06.1.ce-3.el7


设置开机启动:


systemctl enable docker && systemctl start docker


检查安装:


docker --version


*版本 18 即安装成功


(XSHELL 工具–发送输入到所有会话)


  • 安装一些依赖:


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


  • 同步时间:


ntpdate time.windows.com


  • 配置阿里云镜像加速器:


sudo mkdir -p /etc/docker


sudo tee /etc/docker/daemon.json <<-'EOF'


{


"registry-mirrors": ["https://vkayqpp3.mirror.aliyuncs.com"]


}


EOF


sudo systemctl daemon-reload


sudo systemctl restart docker


  • 添加阿里云 yum 源(注意:gpgkey 有两个值)


cat > /etc/yum.repos.d/kubernetes.repo << EOF


[kubernetes]


name=Kubernetes


baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64


enabled=1


gpgcheck=1


repo_gpgcheck=1


gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg


EOF


更新缓存:


yum clean all


yum -y makecache


  • 安装 kubeadm,kubelet 和 kubectl


yum install -y kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0


设置开机启动:


`systemctl enable kube


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


let`


(XSHELL 工具–发送输入到所有会话 先关闭这个功能)


  • 【公网】在 master 节点执行初始化(master 地址:121.36.162.228):


kubeadm init \


--apiserver-advertise-address=121.36.162.228 \


--image-repository registry.aliyuncs.com/google_containers \


--kubernetes-version v1.17.0 \


--service-cidr=10.1.0.0/16 \


--pod-network-cidr=10.244.0.0/16

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Kubernetes教程之新手安装必看(快速浏览少走弯路),java集合详解和集合面试题目