k8s入门初学习
简介
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
在Kubenetes中,所有的容器均在Pod中运行,一个Pod可以承载一个或者多个相关的容器,在后边的案例中,同一个Pod中的容器会部署在同一个物理机器上并且能够共享资源。一个Pod也可以包含O个或者多个磁盘卷组(volumes),这些卷组将会以目录的形式提供给一个容器,或者被所有Pod中的容器共享,对于用户创建的每个Pod,系统会自动选择那个健康并且有足够容量的机器,然后创建类似容器的容器,当容器创建失败的时候,容器会被node agent自动的重启,这个node agent叫kubelet,但是,如果是Pod失败或者机器,它不会自动的转移并且启动,除非用户定义了 replication controller。
minikube
一个轻量级得k8s实现,部署仅包含一个节点的简单集群
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 |
启动
minikube start --image-mirror-country='cn' |
kubectl
用于交互的命令行工具
安装:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" |
查看节点
kubectl get nodes |
查看服务
kubectl get svc |
查看pod
kubectl get pod |
创建pod
kubectl run nginx --image=nginx |
或者
kubectl create deployment nginx-deployment --image=nginx |
编辑
kubectl edit deployment nginx-deployment |
查看日志
kubectl log pod名 |
进入容器
kubectl exec -it pod名 -- /bin/bash |
获取所有资源对象
kubectl get all |
删除资源对象
kubectl delete 对象名 |
配置文件应用
创建
kubectl create -f xxx.yaml |
删除
kubectl delete -f xxx.yaml |
应用
kubectl apply -f xxx.yaml |
service的使用
将一个pod设置为service
kubectl create -f xxx.yaml |
apiVersion: v1 |
或者
kubectl expose pod nginx --name=nginx-service --type=ClusterIP --port=80 --target-port=80 |
查询详细信息
kubectl describe service 服务名 |
更改为NodePort类型(使其在集群外部可以访问)
apiVersion: v1 |
获取ip
kubectl get nodes -o wide |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 MikannseのSekai!
评论
ValineDisqus