K8S簡要操作手冊


基本概念

https://www.redhat.com/zh/topics/containers/kubernetes-architecture

https://www.kubernetes.org.cn/kubernetes設計架構

架構

node

Node是Pod真正運行的主機,可以物理機,也可以是虛擬機。為了管理Pod,每個Node節點上至少要運行container runtime(比如docker或者rkt)、kubelet和kube-proxy服務。

pod

在Kubernetes中,最小的管理元素不是一個個獨立的容器,而是Pod,Pod是最小的,管理,創建,計划的最小單元, 一個pod中可以定義多個容器, 多個容器共享存儲和網絡

apiVersion: v1
kind: Pod
metadata:
  name: redis
spec:
  containers:
  - name: redis
    image: redis
    volumeMounts:
    - name: redis-storage
      mountPath: /data/redis
  volumes:
  - name: redis-storage
    emptyDir: {}

service

https://kubernetes.io/zh/docs/concepts/services-networking/connect-applications-service/

Kubernetes中一個應用服務會有一個或多個實例(Pod,Pod可以通過rs進行多復本的建立),每個實例(Pod)的IP地址由網絡插件動態隨機分配(Pod重啟后IP地址會改變)。為屏蔽這些后端實例的動態變化和對多實例的負載均衡

namespace

Namespace是對一組資源和對象的抽象集合,比如可以用來將系統內部的對象划分為不同的項目組或用戶組。常見的pods, services, replication controllers和deployments等都是屬於某一個namespace的(默認是default),而node, persistentVolumes等則不屬於任何namespace。

Namespace常用來隔離不同的用戶,比如Kubernetes自帶的服務一般運行在kube-system namespace中。

deployment

Deployment為Pod和ReplicaSet提供了一個聲明式定義(declarative)方法,用來替代以前的ReplicationController來方便的管理應用。典型的應用場景包括:

  • 定義Deployment來創建Pod和ReplicaSet
  • 滾動升級和回滾應用
  • 擴容和縮容
  • 暫停和繼續Deployment

k8s基本結構圖

https://jimmysong.io/kubernetes-handbook/guide/kubectl-cheatsheet.html
https://swissarmydevops.com/containers/kubernetes/kubernetes-cheat-sheet

K8S基本操作命令(命令+截圖)

  • 取個別名, 替換kubectl -n test-center-12345678910
alias kk='kubectl -n test-center-12345678910' 
## 不用每次都輸那么一長串的namespace了
kk get pod  
kk get deployment
  • 如何查看運行的POD
kubectl get pod --all-namespaces
kubectl -n ns-account get pod

kubectl get pods --all-namespaces | grep xdr9n # 查找所有namespace下的pod 然后篩選出某個pod
  • 如何啟動一個POD
kubectl apply -f pod.yaml
  • 如何停止一個POD
kubectl scale --replicas=0 pod/<pod-name>
  • 如何查看POD的狀態(CPU/狀態/內存)
kubectl top pod <pod-name>

CPU 單位: 1核 = 1000m, 0.5核=500m, 通常用m單位, 直接填1表示1核

  • 如何查看POD掛載的文件目錄
kubectl describe pod <pod-name>
  • 如何進入POD執行命令
kubectl exec -it  <pod-name> /bin/bash
  • 如何查看POD的運行配置
kubectl exec -it  <pod-name> /bin/bash # 進入容器cd /app/app/remote/  # 進入容器內部的應用目錄, 目前我們大部分中心化應用用的目錄是 /app/app/remote
  • 如何查案運行Service
kubectl get svc


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM