云原生 | K8s
初探
Mac
使用MiniKube
搭建K8s
环境
-
首先配置好
docker
环境 -
安装
kubectl
brew install kubectl
-
在官网下载virtualbox,配置为默认驱动
minikube config set driver virtualbox
-
或者可以使用docker为默认驱动
minikube config set driver docker
-
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 sudo install minikube-darwin-amd64 /usr/local/bin/minikube
-
启动minikube
minikube start --image-mirror-country=cn --registry-mirror=https://ug267z0y.mirror.aliyuncs.com --force
--image-mirror-country=cn
自动使用阿里云服务来支持minikube的环境配置常用配置参数如下
--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 版本
-
验证是否成功
kubectl get pod -A //用于获取所有命名空间中的所有Pod对象的列表
-
打开Kubernetes控制台
minikube dashboard
K8s
基本概念
K8s集群主要包括两个部分:
- **一个Master节点(主节点)**负责管理和控制
- **一群Node节点(计算节点) **工作负载节点,里面是具体的容器。
-
API Server
是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。 -
Scheduler
负责对集群内部的资源进行调度,相当于“调度室”。 -
Controller manager
负责管理控制器,相当于“大总管”。
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
评论区