云原生 | K8s 初探

云原生 | K8s 初探

Mac使用MiniKube搭建K8s环境

  1. 首先配置好docker环境

  2. 安装kubectl

    brew install kubectl 
    
  3. 官网下载virtualbox,配置为默认驱动

    minikube config set driver virtualbox
    
  4. 或者可以使用docker为默认驱动

    minikube config set driver docker
    
  5. 下载minikube

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
    sudo install minikube-darwin-amd64 /usr/local/bin/minikube
    
  6. 启动minikube

    minikube start --image-mirror-country=cn --registry-mirror=https://ug267z0y.mirror.aliyuncs.com --force
    

    --image-mirror-country=cn自动使用阿里云服务来支持minikube的环境配置

    image-20230513173557193

    常用配置参数如下

    • --driver=*** 从1.5.0版本开始,Minikube缺省使用系统优选的驱动来创建Kubernetes本地环境,比如您已经安装过Docker环境,minikube 将使用 docker 驱动
  • --cpus=2: 为minikube虚拟机分配CPU核数

    • --memory=2048mb: 为minikube虚拟机分配内存数
    • --registry-mirror=*** 为了提升拉取Docker Hub镜像的稳定性,可以为 Docker daemon 配置镜像加速,参考阿里云镜像服务
    • --kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本
  1. 验证是否成功

    kubectl get pod -A	//用于获取所有命名空间中的所有Pod对象的列表
    

    image-20230513173716467

  2. 打开Kubernetes控制台 minikube dashboard

    image-20230513173814142

K8s基本概念

K8s集群主要包括两个部分:

  • **一个Master节点(主节点)**负责管理和控制
  • **一群Node节点(计算节点) **工作负载节点,里面是具体的容器。

image-20230513174141846

  • API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。

  • Scheduler负责对集群内部的资源进行调度,相当于“调度室”。

  • Controller manager负责管理控制器,相当于“大总管”。

1

  • Kubelet,主要负责监视指派到它所在Node上的Pod,包括创建、修改、监控、删除等
  • Kube-proxy,主要负责为Pod对象提供代理。
  • Fluentd,主要负责日志收集、存储与查询。

Kubectl指令

  • 查看集群配置 kubectl config view

  • 与deployment相关

    编写deployment.yaml文件,创建

    kubectl create -f deployment.yaml
    

    查看所有的deployment kubectl get deployments

    删除指定的pod kubectl delete deployments <deploymentName>

  • 应用升级

    kubectl set image deloyment web nginx=nginx:1.15
    

    查看是否成功

    kubectl rollout status deloyment web 
    

    查看历史版本

    kubectl rollout history deloyment web
    

    回滚到上一个版本

    kubectl rollout undo deloyment web
    

    后面加上 --to-version = 2 回滚到指定版本

    弹性伸缩

    kubectl scale deloyment web --repicas = 10 
    
  • 与pod相关

    通过文件创建pod kubectl apply -f nginx.yaml

    端口映射

    kubectl port-forward nginx 4000:80
    
    kubectl logs --follow nginx-pod
                                  
    kubectl exec nginx-pod -- ls
    
    kubectl delete pod nginx-pod
    # pod "nginx-pod" deleted
    
    kubectl delete -f nginx.yaml
    # pod "nginx-pod" deleted
    

    查看所有的pod kubectl get pods

    删除指定的pod kubectl delete pod <podName>

  • 与service相关

    查看services kubectl get services 或者kubectl get svc可以知道映射到端口号

    删除指定的service kubectl delete service <serviceName>

Minikube 指令

  • 停止 VM 和 k8s 集群 minikube stop 不会删除任何数据
  • 删除一个集群 minikube delete, 删除所有集群 minikube delete --all 删除所有 minikube 启动后的数据
  • 查看ip地址:minikube ip
  • 查看当前集群状态minikube status
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值