栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

kubernetes基础知识和基础命令(k8s入门)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kubernetes基础知识和基础命令(k8s入门)

  • 整理自官方新手教程,因此使用的是minikube。
  • 官方教程链接: https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/
集群(cluster)

一个 Kubernetes 集群包含两种类型的资源:

  • Master 调度整个集群
  • Nodes 负责托管正在运行的应用
    在 Kubernetes 上部署应用时,你告诉 Master 启动应用容器。 Master 就编排容器在集群的 Node 上运行。
1 集群基础命令 1.1 创建集群
minikube start
1.2 查看kubectl和k8s版本
## client 是kubectl,server是k8s
kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:12:00Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.2", GitCommit:"faecb196815e248d3ecfb03c680a4507229c2a56", GitTreeState:"clean", BuildDate:"2021-01-13T13:20:00Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
1.3.查看节点信息
$ kubectl get nodes
NAME       STATUS   ROLES                  AGE    VERSION
minikube   Ready    control-plane,master   4m9s   v1.20
2 部署应用

一旦运行了 Kubernetes 集群,就可以在其上部署容器化应用程序。k8s不会直接创建应用,而是通过控制器(controller)。最常用的就是Deployment。创建 Deployment 后,Kubernetes master 将应用程序实例调度到集群中的各个节点上。
创建应用程序实例后,Deployment 控制器会持续监视这些实例。 如果托管实例的节点关闭或被删除,则 Deployment 控制器会将该实例替换为群集中另一个节点上的实例。 这提供了一种自我修复机制来解决机器故障维护问题。

2.1 创建Deployment
kubectl create deployment deployname --image=image_name
2.2 查看Deployment
kubectel get deployments
3 pods和nodes

创建 Deployment 时, Kubernetes 添加了一个 Pod 来托管你的应用实例。
Pod 包括一个或多个应用容器,以及这些容器的一些共享资源。这些资源包括:

  • 共享存储,比如volumn
  • 网络,每个pod有唯一的集群 IP 地址
  • 每个容器如何运行的信息,例如容器镜像版本或要使用的端口号。

节点(nodes)是 Kubernetes 中的参与计算的机器,可以是虚拟机或物理计算机,具体取决于集群。
每个 Kubernetes 节点至少运行:

  • Kubelet,负责 Kubernetes 主节点和工作节点之间通信的过程; 它管理 Pod 和机器上运行的容器。
  • 容器(如 Docker)负责从仓库中提取容器镜像,解压缩容器以及运行应用程序。

pod和node的关系:pod 必须运行在 节点上。一个节点可以有多个 pod 。

3.1 查看pods列表

kubectl get pods

3.2 查看pods详细信息(控制器、容器、镜像等)

kubectl describe pods

3.3查看pods日志

kubectl logs podname

3.4 在pod里运行命令 3.4.1. 查看环境

kubectl exec podname -- env

3.4.2 进入容器里的命令行环境

kubectl exec podname -- bash

4 访问应用 4.1. 新建service,将容器的8080端口映射到节点的端口
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
4.2 查看新建的service
kubectl get services
NAME                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes            ClusterIP   10.96.0.1                443/TCP          19m
kubernetes-bootcamp   NodePort    10.103.177.108           8080:31624/TCP   62s
4.3 使用标签来映射pods
kubectl label pods $POD_NAME version=v1
4.4 查看pods的标签
kubectl describe pods $POD_NAME

4.5 查找特定标签的pods
kubectl get pods -l version=v1
4.6.删除service
kubectl delete service -l app=kubernetes-bootcamp
6 扩缩容

扩展 Deployment 将创建新的 Pods,并将资源调度请求分配到有可用资源的节点上,

6.1 扩容
kubectl scale deployments/deploymentname --replicas=4
6.2 扩容结果
$ kubectl get deployments
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   4/4     4            4           106s
6.3 扩容后的pods名
$ kubectl get pods
NAME                                  READY   STATUS    RESTARTS   AGE
kubernetes-bootcamp-fb5c67579-8whlr   1/1     Running   0          2m22s
kubernetes-bootcamp-fb5c67579-fgflh   1/1     Running   0          107s
kubernetes-bootcamp-fb5c67579-wp8vs   1/1     Running   0          107s
kubernetes-bootcamp-fb5c67579-x2t4q   1/1     Running   0          107s
6.3 缩容 (用同样的命令)
kubectl scale deployments/kubernetes-bootcamp --replicas=2
6.4 查看缩容结果
$ kubectl get deployments
NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
kubernetes-bootcamp   2/2     2            2           4m12s
7 镜像更新和回滚

滚动更新(rolling update)允许以下操作:

  • 将应用程序从一个环境提升到另一个环境(通过容器镜像更新)
  • 回滚到以前的版本
  • 持续集成和持续交付应用程序,无需停机
7.1 更新镜像
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=newimage
7.2 查看镜像是否已更新

可以查看pods的镜像名是否已更新
kubectl describe pods

还可以用查看滚动更新的状态命令

$ kubectl rollout status deployments/kubernetes-bootcamp
deployment "kubernetes-bootcamp" successfully rolled out
7.3 回滚
kubectl rollout undo deployments/kubernetes-bootcamp
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号