- 1、安装
- 2、查看版本
- 3、启动
- 4、查看
- 5、创建Deployment(生成deployment和pod实例)
- 6、查看Deployment
- 7、查看Pod
- 8、创建Service
- 9、查看Service
- 10、查看Service详情
- 11、外网访问
- 12、控制台
- 13、可单独创建Pod,跳过Deployment和Service
- 14、删除
- 15、总结
- 16、和Docker的关系和区别
1、安装
- 机器:47.97.4.204
- 版本:minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
install minikube-linux-amd64 /usr/local/bin/minikube
curl -Lo kubectl "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \ && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
2、查看版本
minikube version
3、启动
minikube start --force --image-mirror-country=cn
4、查看
kubectl get pods -A
5、创建Deployment(生成deployment和pod实例)
kubectl create deployment nginx --image=nginx
6、查看Deployment
kubectl get deployments
kubectl describe deployments
7、查看Pod
kubectl get pod
- 查看该容器日志:
kubectl logs nginx-748c667d99-k2k5c
8、创建Service
默认情况下,Pod只能通过Kubernetes集群中的内部IP地址访问。要使容器可以从Kubernetes虚拟网络的外部访问,您必须将Pod暴露为Kubernetes Service。 使用kubectl expose命令将Pod暴露给公网, 会将内部端口80挂载到宿主机的随机一个5位数端口
kubectl expose deployment nginx --type=LoadBalancer --port=80
9、查看Service
kubectl get services
10、查看Service详情
minikube service nginx
- 测试内网访问:
curl 192.168.49.2:30327
11、外网访问
kubectl port-forward --address 0.0.0.0 service/nginx 8102:80
或
kubectl port-forward --address 0.0.0.0 pod/nginx-748c667d99-k2k5c 8102:80
- 测试外网访问:http://47.97.4.204:8102
12、控制台
- 启动:
minikube dashboard &
- 远程访问设置:
kubectl proxy --address='0.0.0.0' --disable-filter=true &
访问:http://47.97.4.204:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
13、可单独创建Pod,跳过Deployment和Service
kubectl run nginx --image nginx:latest
- 查看Pod:
kubectl get pod
- 外部访问设置:
kubectl port-forward --address 0.0.0.0 service/nginx 8102:80
- 访问:http://47.97.4.204:8102
14、删除
- 删除服务发现:
kubectl delete service nginx
- 删除部署:
kubectl delete deployment nginx
- 删除容器:
kubectl delete pod nginx
15、总结
- Node:Kubernetes本身集群节点
- Deoplyment:负责创建和保持Pod运行状态。
- Pod:即容器,是最终的应用部署实体;
- Service:是从网络角度的抽象概念,类似于Nginx做负载均衡提供的统一网络入口。
16、和Docker的关系和区别
- Docker是容器。
- K8S是容器编排,可以指定各种容器引擎(Docker、Containerd),管理的容器实例Pod可以理解为Docker的容器。
- Docker也有自己的容器编排工具Docker Swarm。