k8s-第一节-minikube

minikube

服务器启动

sh 复制代码
# 启动集群
minikube start
# 启动集群并使用docker驱动
minikube start --driver=docker
To make docker the default driver:

minikube config set driver docker
# 查看节点。kubectl 是一个用来跟 K8S 集群进行交互的命令行工具
kubectl get node
# 停止集群
minikube stop
# 清空集群
minikube delete --all
# 安装集群可视化 Web UI 控制台
minikube dashboard

minikube 安装以后可以再安装kubectl ,不必使用minikube kubectl 来用
kubectl cluster-info 查看集群配置是否正确

kubectl容器操作

c 复制代码
kubectl get namespace//获得所有命名空间
kubectl get pod --all-namespaces -o wide//获得命名空间下的所有容器
 
通过kubectl get pods查询,然后通过下面命令进入
kubectl exec -it nas-all-0 /bin/bash

新版使用这个进入容器
kubectl exec test-pod -it -- /bin/bash

//进入命名空间下的容器,application是命名空间,psqls-0是容器
kubectl exec -it -n application psqls-0 /bin/bash
 
//拷贝内容内文件,拷贝出来
kubectl cp -n application psqls-0:/var/lib/postgresql/data/pg_wal /home
//拷贝进去
kubectl cp /home/dades/pg_wal -n application psqls-0:/var/lib/postgresql/data/pg_wal

kubect pod 操作

sh 复制代码
kubectl get pod -o wide
kubectl get pod -o wide -n <namespace-name>

# 查看pod详细信息
kubectl describe pod <pod-name>

Name:             testapp
Namespace:        default #在哪个namespace下面
Priority:         0
Service Account:  default
Node:             minikube/192.168.49.2 #在哪个node下面,后面是nodeIp
Start Time:       Wed, 31 Jan 2024 15:50:21 +0800
Labels:           run=testapp #对应的标签选择器key:value
Annotations:      <none>
Status:           Running
IP:               10.244.0.11
IPs:
  IP:  10.244.0.11
Containers:
  testapp:
#   
    Container ID:   docker://a10cb23fd7cd835a584865076e134278bb77f16282a97208661b95a97a6744e0
    Image:          ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1
    Image ID:       docker-pullable://ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s@sha256:9b452816d6493045a21d8b3d6a851f21ca2e50c86cd57ba8c41141f001d9911d
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Wed, 31 Jan 2024 15:51:48 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-58tk8 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  kube-api-access-58tk8:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  51m   default-scheduler  Successfully assigned default/testapp to minikube
  # 接受命令,分发任务
  Normal  Pulling    51m   kubelet            Pulling image "ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1"
  # 拉取镜像
  Normal  Pulled     49m   kubelet            Successfully pulled image "ccr.ccs.tencentyun.com/k8s-tutorial/test-k8s:v1" in 1m25.557s (1m25.557s including waiting)
  # 拉取成功
  # 创建容器
  Normal  Created    49m   kubelet            Created container testapp
  Normal  Started    49m   kubelet            Started container testapp

pod 其他操作

sh 复制代码
# 查看日志
kubectl logs <pod-name>

# 进入容器
kubectl exec -it <pod-name> -- /bin/bash

dashboard

minikube dashboard &

返回的url http://127.0.0.1:42005/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ 为访问地址

但此地址只是容器代理出来的地址,只能本机内网访问,要想在外网访问 dashboard 的UI 界面,需要使用kubectl做一层代理。
kubectl proxy --port=端口号(一个没有被占用的就可以) --address='机器或者虚拟机地址' --accept-hosts='^.*' &
以上命令代理后,访问 http://机器公网IP:上面配置的端口号/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ 就可以访问到dashboard 的UI 界面

相关推荐
AOwhisky4 小时前
Python 学习笔记(第三期)——流程控制核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发·流程控制
欢醉4 小时前
k8s调用服务异常cannot allocate memory
kubernetes·k8s
阿里云云原生5 小时前
AgenticOps 已来:运维智能体如何落进生产环境
云原生
扶疏5256 小时前
Kubernetes Dashboard、动态卷供应、StatefulSet
容器·kubernetes
阿里云云原生6 小时前
告别 Token 计量的混乱:AI 网关如何通过 Credits 统一度量实现跨模型配额管理?
云原生
leijiwen7 小时前
LinkLifeVerse OS :数字经济时代的产业价值操作系统(Industry Value Operating System)
人工智能·云原生·saas·paas
阿里云云原生8 小时前
终结前端“黑盒”难题:通过 Session Replay 与三维热力图实现像素级用户行为洞察
云原生·监控
云烟成雨TD9 小时前
Kubernetes 系列【14】对象元数据:标签、标签选择器、命名空间、字段选择器
云原生·容器·kubernetes
极客先躯9 小时前
高级java每日一道面试题-2026年04月05日-实战篇[Docker]-如何排查容器 OOM 的问题?
java·运维·docker·容器·内存溢出·高级面试
SLD_Allen9 小时前
K8s+Ray:大模型时代AI Workload调度的通用范式
人工智能·容器·kubernetes