K8s环境搭建及项目部署
Mac使用MiniKube搭建K8s环境
-
首先配置好docker环境
-
安装kubectl
1brew install kubectl -
在官网下载virtualbox,配置为默认驱动
1minikube config set driver virtualbox -
或者可以使用docker为默认驱动
1minikube config set driver docker -
1 2curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 sudo install minikube-darwin-amd64 /usr/local/bin/minikube -
启动minikube
1minikube start --image-mirror-country=cn --registry-mirror=https://ug267z0y.mirror.aliyuncs.com--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 版本
-
验证是否成功
1kubectl get po -A
-
打开Kubernetes控制台
1minikube dashboard
自动会跳转到网页控制台
Kubectl指令
-
查看集群配置
kubectl config view -
与deployment相关
编写deployment.yaml文件,创建
1kubectl create -f deployment.yaml查看所有的deployment
kubectl get deployments删除指定的pod
kubectl delete deployments <deploymentName> -
应用升级
1kubectl set image deloyment web nginx=nginx:1.15查看是否成功
1kubectl rollout status deloyment web查看历史版本
1kubectl rollout history deloyment web回滚到上一个版本
1kubectl rollout undo deloyment web后面加上 –to-version = 2 回滚到指定版本
弹性伸缩
1kubectl scale deloyment web --repicas = 10 -
与pod相关
查看所有的pod
kubectl get pods删除指定的pod
kubectl delete pod <podName> -
与service相关
查看services
kubectl get services或者kubectl get svc可以知道映射到端口号删除指定的service
kubectl delete service <serviceName>
Minikube基本指令
- 停止一个集群
minikube stop - 删除一个集群
minikube delete, 删除所有集群minikube delete --all - 查看ip地址:
minikube ip
通过kubectl发布服务
-
创建服务
hello-minikubel1kubectl create deployment hello-minikube1 --image=registry.cn-hangzhou.aliyuncs.com/google_containers/echoserver:1.10 -
暴露端口
1kubectl expose deployment hello-minikube1 --type=LoadBalancer --port=8080 -
访问端口
1minikube service hello-minikube1

-
查看所有的deployment服务
kubectl get deployments查看pods
kubectl get pods查看services
kubectl get services或者kubectl get svc可以知道映射到端口号查看创建的 Pod 和 Service
kubectl get pod,svc -n kube-system -
删除服务
1kubectl delete deployment -n default hello-minikube1 --force --grace-period=0
部署Nginx服务
|
|
通过minikube部署go语言项目
制作程序镜像
-
编写dockefile文件
-
根据dockerfile文件build镜像
-
验证进行,将其运行起来成容器
-
推送镜像到DockerHub
登录DockerHub 使用账号和密码登录即可
docker login1 2 3//用Dockerfile重新构建镜像,指定镜像仓库名。构建完成后将镜像然后推送到DockerHub上 docker build -t robking/minukube-go . docker push robking/minikube-go
Kubernets部署应用
-
定义预期状态,编写deployment.yaml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23apiVersion: apps/v1 kind: Deployment metadata: name: my-go-app spec: replicas: 1 selector: matchLabels: app: go-app template: metadata: labels: app: go-app spec: containers: - name: go-app-container image: rob1king1/minikube-go resources: limits: memory: "128Mi" cpu: "500m" ports: - containerPort: 3000Kubernetes Deployment对象(清单文件的kind里指定的)表示运行在集群中的应用。文件里还指定了应用需要一个副本运行(replicas),以及运行的容器名和容器的镜像、资源大小等信息指令生成
1kubectl create deployment web --image=nginx -o yaml --dry-run > nginx.yaml -
使用
deployment.yaml创建Deployment对象来运行Go应用程序的容器1kubuctl apply -f delpyment.yaml1kubectl create -f deployment.yaml -
可以查看pods和services的状态,event的信息
-
暴露应用,可以输出到文件中yaml,然后apply即可
1kubectl expose deployment my-go-app --type=NodePort --name=go-app-svc --target-port=3000 -
查看应用的端口和ip地址
1 2 3 4//查看ip minikube ip //查看端口 kubectl get svc
-
列出hello-nginx的信息 自动打开浏览器
1minkube service go-app-svc






