K8s(一) 环境搭建

K8s(一) 环境搭建笔记:



一、简介&整体架构图

docker默认都是单机使用,没有高可用,所以生产环境一般不会单独使用docker跑应用,k8s主要是作为docker的一个调度器来使用,可以使容器实现跨节点通信,当一台运行容器的节点故障后,容器会自动迁移到其它可用节点上继续运行服务,这样就能实现高可用,目前比较常用的是k8s
在这里插入图片描述

master

kubectl: k8s的所有操作都是通过kubectl指令操作的

REST API:k8s对外部服务提供的接口服务,例如图形化界面或者kubectl都会通过REST API接口下发指令来控制k8s

scheduler:调度器,例如创建pod,scheduler可以控制将pod分配到哪个pod节点

controller-manager:检测pod或者node的健康状态,并维持pod的正常运行,如果pod故障,controller-manger会自动修复,例如在启动一个pod副本

etcd:一个高可用的键值仓库用于配置共享和服务发现,类似于zookeeper,基本覆盖了zk的应用场景,k8s的所有数据都存放在etcd数据库中

node

node:node节点是真正的工作负载节点,每个node都会被master节点分配一些工作负载(docker容器),当某个node节点宕机时,master节点就会转移该节点上的工作负载到其他node节点上

pod:k8s环境运行的最小单位,一个pod中可以包含一个或多个docker容器;k8s为每个pod都配备了一个唯一的ip地址,称之为pod ip,一个pod里的多个容器共享这个pod id;一个集群内的任意两个pod都是能直接通信的

kubelet:代理软件,例如在master上对node节点下发的指令,都需要通过kubelet组建来告知各个组件。负责pod对应的容器的创建,启停等任务,同时与master节点密切协作,实现集群管理的基本功能

kubeproxy:在所有节点都需要运行kubeproxy,后期通过创建svc来将pod映射到外网,当外部通过svc-ip访问pod的时候就需要通过kubeporxy进行路由转发到pod

二、安装

官方地址链接: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
不翻墙基本走不通

下面使用minikube测试搭建

# 使用国内阿里云源安装 kubectl
curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl
# 通过国内阿里云安装 minikube
curl -Lo minikube http://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.2.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
# 启动minikube (本机已安装docker)
minikube start --vm-driver=none

更多命令:

minikube start                           # 启动minikube
minikube ip                              # 查看IP
minikube status                          # 查看状态
minikube stop                            # 关闭集群
minikube delete                          # 删除集群。如果启动出错,同时删除 ~/.minikube目录 再minikube start

kubectl cluster-info                     # 查看集群信息
kubectl get node            			 # 查看已有 node节点信息
kubectl get pod						     #查看所有pod信息
kubectl get pod -o wide                  #查看pod主要信息 包含IP 所属node节点等
kubectl get deployment                   #查看所有deployment信息
kubectl describe deployment deployment名字  #查看具体deployment信息
kubectl describe pod pod名字    #查看具体pod信息
kubectl apply -f yaml文件名称              #执行对应yaml配置文件

从docker可以看到实际下载的镜像
在这里插入图片描述
参考minikube官方:https://kubernetes.io/docs/tutorials/hello-minikube/

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值