Kubernetes(k8s)常用yaml配置和注釋方式
一、pod
1、pod完整定義
# yaml格式的pod定義文件完整內(nèi)容:
apiVersion: v1 #必選,api版本號,例如v1
kind: Pod #必選,Pod
metadata: #必選,元數(shù)據(jù)
name: string #必選,Pod名稱
namespace: string #Pod所屬的命名空間,默認在default的namespace
labels: # 自定義標簽
name: string #自定義標簽名字
annotations: #自定義注釋列表
name: string
spec: #必選,Pod中容器的詳細定義(期望)
containers: #必選,Pod中容器列表
- name: string #必選,容器名稱
image: string #必選,容器的鏡像名稱
imagePullPolicy: [Always | Never | IfNotPresent] #獲取鏡像的策略 Alawys表示下載鏡像 IfnotPresent表示優(yōu)先使用本地鏡像,否則下載鏡像,Nerver表示僅使用本地鏡像
command: [string] #容器的啟動命令列表,如不指定,使用打包時使用的啟動命令
args: [string] #容器的啟動命令參數(shù)列表
workingDir: string #容器的工作目錄
volumeMounts: #掛載到容器內(nèi)部的存儲卷配置
- name: string #引用pod定義的共享存儲卷的名稱,需用volumes[]部分定義的的卷名
mountPath: string #存儲卷在容器內(nèi)mount的絕對路徑,應(yīng)少于512字符
readOnly: boolean #是否為只讀模式
ports: #需要暴露的端口庫號列表
- name: string #端口號名稱
containerPort: int #容器需要監(jiān)聽的端口號
hostPort: int #容器所在主機需要監(jiān)聽的端口號,默認與Container相同
protocol: string #端口協(xié)議,支持TCP和UDP,默認TCP
env: #容器運行前需設(shè)置的環(huán)境變量列表
- name: string #環(huán)境變量名稱
value: string #環(huán)境變量的值
resources: #資源限制和請求的設(shè)置
limits: #資源限制的設(shè)置
cpu: string #Cpu的限制,單位為core數(shù),將用于docker run --cpu-shares參數(shù)
memory: string #內(nèi)存限制,單位可以為Mib/Gib,將用于docker run --memory參數(shù)
requests: #資源請求的設(shè)置
cpu: string #Cpu請求,容器啟動的初始可用數(shù)量
memory: string #內(nèi)存清求,容器啟動的初始可用數(shù)量
livenessProbe: #對Pod內(nèi)個容器健康檢查的設(shè)置,當(dāng)探測無響應(yīng)幾次后將自動重啟該容器,檢查方法有exec、httpGet和tcpSocket,對一個容器只需設(shè)置其中一種方法即可
exec: #對Pod容器內(nèi)檢查方式設(shè)置為exec方式
command: [string] #exec方式需要制定的命令或腳本
httpGet: #對Pod內(nèi)個容器健康檢查方法設(shè)置為HttpGet,需要制定Path、port
path: string
port: number
host: string
scheme: string
HttpHeaders:
- name: string
value: string
tcpSocket: #對Pod內(nèi)個容器健康檢查方式設(shè)置為tcpSocket方式
port: number
initialDelaySeconds: 0 #容器啟動完成后首次探測的時間,單位為秒
timeoutSeconds: 0 #對容器健康檢查探測等待響應(yīng)的超時時間,單位秒,默認1秒
periodSeconds: 0 #對容器監(jiān)控檢查的定期探測時間設(shè)置,單位秒,默認10秒一次
successThreshold: 0
failureThreshold: 0
securityContext:
privileged:false
restartPolicy: [Always | Never | OnFailure] # Pod的重啟策略,Always表示一旦不管以何種方式終止運行,kubelet都將重啟,OnFailure表示只有Pod以非0退出碼退出才重啟,Nerver表示不再重啟該Pod
nodeSelector: obeject # 設(shè)置NodeSelector表示將該Pod調(diào)度到包含這個label的node上,以key:value的格式指定
imagePullSecrets: #Pull鏡像時使用的secret名稱,以key:secretkey格式指定
- name: string
hostNetwork: false #是否使用主機網(wǎng)絡(luò)模式,默認為false,如果設(shè)置為true,表示使用宿主機網(wǎng)絡(luò)
volumes: #在該pod上定義共享存儲卷列表
- name: string #共享存儲卷名稱 (volumes類型有很多種)
emptyDir: {} #類型為emtyDir的存儲卷,與Pod同生命周期的一個臨時目錄。為空值
hostPath: string #類型為hostPath的存儲卷,表示掛載Pod所在宿主機的目錄
path: string #Pod所在宿主機的目錄,將被用于同期中mount的目錄
secret: #類型為secret的存儲卷,掛載集群與定義的secret對象到容器內(nèi)部
scretname: string
items:
- key: string
path: string
configMap: #類型為configMap的存儲卷,掛載預(yù)定義的configMap對象到容器內(nèi)部
name: string
items:
- key: string
path: string2、探針
apiVersion: v1
kind: Pod
metadata:
name: liveness-exce
namespace: default
spec:
containers:
- name: liveness
image: busybox
imagePullPolicy: IfNotPresent
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy;sleep 600
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5 # pod啟動延遲5秒后探測
periodSeconds: 5 # 每5秒探測1次
livenessProbe:
httpGet: # 使用httpGet方式
port: http # http協(xié)議,也可以直接寫80端口
path: /index.html # 探測家目錄下的index.html
initialDelaySeconds: 3 # 延遲3秒開始探測
periodSeconds: 5 # 每隔5s鐘探測一次
livenessProbe:
tcpSocket: # 使用tcp連接方式
port: 80 # 連接80端口進行探測
initialDelaySeconds: 3
periodSeconds: 5
readinessProbe: # 這里由liveness換成了readiness
httpGet:
port: http
path: /index.html
initialDelaySeconds: 3
periodSeconds: 5
livenessProbe:
httpGet:
port: http
path: /index.html
initialDelaySeconds: 1
periodSeconds: 3
readinessProbe:
httpGet:
port: http
path: /index.html
initialDelaySeconds: 5
periodSeconds: 5
3、post-start、pre-stop
容器啟動前和停止前執(zhí)行的操作:
apiVersion: v1
kind: Pod
metadata:
name: prestop
namespace: default
spec:
containers:
- name: prestop
image: nginx:1.15-alpine
imagePullPolicy: IfNotPresent
lifecycle: # 生命周期事件
preStop: # preStop
exec:
command: ["/bin/sh","-c","sleep 60000000"] # 容器終止前sleep 60000000秒
postStart:
exec:
command: ["mkdir","-p","/usr/share/nginx/html/haha"]二、Controller
1、Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment # Deployment 的名稱
spec:
replicas: 3 # 副本數(shù)
selector:
matchLabels:
app: my-app # 用于選擇 Pod 的標簽,表示deployment和rs控制器控制帶有此標簽的pod
template: # pod配置模板
metadata:
labels:
app: my-app # Pod 的標簽,用于與選擇器匹配
spec:
containers:
- name: my-container # 容器的名稱
image: nginx # 使用的容器鏡像
ports:
- containerPort: 80 # 容器內(nèi)部暴露的端口號
protocol: TCP # 端口的協(xié)議類型
resources: # 容器所需的資源限制和需求
limits:
cpu: "0.5" # CPU 使用上限
memory: "256Mi" # 內(nèi)存使用上限
requests:
cpu: "0.2" # CPU 最小需求
memory: "128Mi" # 內(nèi)存最小需求
env: # 容器的環(huán)境變量
- name: ENV_VAR1
value: value1
- name: ENV_VAR2
valueFrom:
secretKeyRef:
name: my-secret # 引用的 Secret 對象的名稱
key: secret-key # 從 Secret 對象中獲取的鍵名
volumeMounts: # 容器的掛載路徑
- name: data-volume # 掛載的卷的名稱
mountPath: /data # 掛載的路徑
volumes: # Pod 的卷
- name: data-volume # 卷的名稱
emptyDir: {} # 空的卷,生命周期與 Pod 相關(guān)聯(lián)
# 可以添加 metadata.annotations 字段用于存放其他注釋信息
metadata:
annotations:
description: This is a sample Deployment configuration file. # 描述該配置文件的注釋
2、StatefulSet
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: my-statefulset # StatefulSet 的名稱
spec:
selector:
matchLabels:
app: my-app # 匹配標簽,用于選擇要管理的 Pod
serviceName: my-service # Headless Service 的名稱
replicas: 3 # 副本數(shù)
template:
metadata:
labels:
app: my-app # Pod 的標簽
spec:
containers:
- name: my-container # 容器的名稱
image: nginx # 容器的鏡像
ports:
- containerPort: 80 # 容器監(jiān)聽的端口號
volumeMounts:
- name: data-volume # 掛載卷的名稱
mountPath: /data # 掛載到容器中的路徑
volumeClaimTemplates:
- metadata:
name: data-volume # 持久化存儲卷模板的名稱
spec:
accessModes:
- ReadWriteOnce # 訪問模式
resources:
requests:
storage: 1Gi # 存儲容量
StatefulSet 是用于管理有狀態(tài)應(yīng)用程序的控制器,它保證 Pod 的唯一性和穩(wěn)定性,并按照序號進行命名。
在上述示例中,創(chuàng)建了一個包含 3 個副本的 StatefulSet,每個副本都會被命名為 my-statefulset-{0…2}。
StatefulSet 是用于管理有狀態(tài)應(yīng)用程序的控制器,它保證 Pod 的唯一性和穩(wěn)定性,并按照序號進行命名。
在上述示例中,創(chuàng)建了一個包含 3 個副本的 StatefulSet,每個副本都會被命名為 my-statefulset-{0…2}。
3、DaemonSet
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: my-daemonset # DaemonSet 的名稱
spec:
selector:
matchLabels:
app: my-app # 匹配標簽,用于選擇要管理的節(jié)點上的 Pod
template:
metadata:
labels:
app: my-app # Pod 的標簽
spec:
containers:
- name: my-container # 容器的名稱
image: nginx # 容器的鏡像
ports:
- containerPort: 80 # 容器監(jiān)聽的端口號
volumeMounts:
- name: data-volume # 掛載卷的名稱
mountPath: /data # 掛載到容器中的路徑
nodeSelector:
disktype: ssd # 節(jié)點的標簽選擇器,用于選擇帶有指定標簽的節(jié)點
updateStrategy:
type: RollingUpdate # 更新策略為滾動更新
rollingUpdate:
maxUnavailable: 1 # 在更新期間最多允許一個 Pod 不可用
volumeClaimTemplates:
- metadata:
name: data-volume # 持久化存儲卷模板的名稱
spec:
accessModes:
- ReadWriteOnce # 訪問模式
resources:
requests:
storage: 1Gi # 存儲容量
DaemonSet 是用于在每個節(jié)點上運行一個 Pod 的控制器,它保證每個節(jié)點上都有一個唯一的 Pod 進行運行,并自動適應(yīng)節(jié)點變化。
在上述示例中,創(chuàng)建了一個 DaemonSet,每個節(jié)點上都會運行一個 Pod,該 Pod 將被命名為 my-daemonset-{node-name}。
DaemonSet 還包含了 volumeClaimTemplates 字段,用于定義持久化存儲卷模板。
在上述示例中,使用了一個名為 data-volume 的持久化存儲卷模板,訪問模式為 ReadWriteOnce,存儲容量為 1GB。Pod 將根據(jù)該模板創(chuàng)建一個與之對應(yīng)的持久化存儲卷。
通過使用 DaemonSet 和持久化存儲卷,可以在集群的每個節(jié)點上運行一個 Pod,并確保應(yīng)用程序的數(shù)據(jù)持久化和可靠性存儲。
由于 DaemonSet 會自動適應(yīng)節(jié)點變化,因此在增加或刪除節(jié)點時,應(yīng)用程序的數(shù)據(jù)不會丟失或受影響。
4、Job
apiVersion: batch/v1
kind: Job
metadata:
name: my-job # Job 的名稱
spec:
completions: 1 # 完成的任務(wù)數(shù)
parallelism: 1 # 并行運行的 Pod 數(shù)量
template:
metadata:
name: my-pod # Pod 的名稱
spec:
restartPolicy: Never # 不重啟容器
containers:
- name: my-container # 容器的名稱
image: nginx # 容器的鏡像
command: ["echo", "Hello, world!"] # 容器啟動命令
volumes:
- name: data-volume # 卷的名稱
emptyDir: {} # 空的臨時卷
backoffLimit: 3 # 重試次數(shù)上限
Job 是用于在 Kubernetes 中運行一次性任務(wù)的控制器。
在上述示例中,創(chuàng)建了一個 Job,其中包含一個 Pod,Pod 中運行了一個名為 my-container 的容器,該容器使用 nginx 鏡像,并執(zhí)行了 echo “Hello, world!” 命令。
Job 的配置還包括一些重要的字段,如 completions(完成的任務(wù)數(shù))和 parallelism(并行運行的 Pod 數(shù)量)。completions 字段指定了 Job 完成的任務(wù)數(shù),一旦達到該數(shù)量,Job 就會被標記為成功。parallelism 字段指定了同時運行的 Pod 數(shù)量,可以控制并行執(zhí)行任務(wù)的速度。
另外,還有一些其他常用的字段,例如 restartPolicy(容器的重啟策略),volumes(卷的定義)和 backoffLimit(重試次數(shù)上限)。這些參數(shù)可以根據(jù)業(yè)務(wù)需求進行調(diào)整和配置。
通過使用 Job 控制器,可以在 Kubernetes 中運行一次性任務(wù),并確保任務(wù)的完成和可靠性運行。由于 Job 可以指定任務(wù)數(shù)量和并行度,可以很好地適應(yīng)不同規(guī)模和要求的任務(wù)場景。
5、ConJob
apiVersion: batch/v1beta1 # 使用的 API 版本
kind: CronJob # CronJob 類型
metadata:
name: my-cronjob # CronJob 的名稱
spec:
schedule: "*/1 * * * *" # Cron 表達式,用于定義作業(yè)執(zhí)行的時間表
jobTemplate: # 作業(yè)模板,指定 CronJob 創(chuàng)建的作業(yè)配置
spec:
template:
metadata:
name: my-job # 作業(yè)的名稱
spec:
restartPolicy: OnFailure # 容器的重啟策略
containers:
- name: my-container # 容器的名稱
image: nginx # 容器的鏡像
command: ["echo", "Hello, world!"] # 容器啟動命令
successfulJobsHistoryLimit: 5 # 歷史成功作業(yè)保存的數(shù)量上限
failedJobsHistoryLimit: 5 # 歷史失敗作業(yè)保存的數(shù)量上限
CronJob 是 Kubernetes 中的一種控制器,用于定期運行作業(yè)。在上述示例中,創(chuàng)建了一個 CronJob,其中定義了一個 Cron 表達式 */1 * * * *,表示每分鐘執(zhí)行一次作業(yè)。
CronJob 的配置還包括使用 jobTemplate 指定了創(chuàng)建作業(yè)的模板。在這個模板中,指定了作業(yè)的 Pod 配置,其中包含一個名為 my-container 的容器,使用 nginx 鏡像,并執(zhí)行了 echo “Hello, world!” 命令。
除了基本的配置外,還有一些其他常用的字段。例如,successfulJobsHistoryLimit 和 failedJobsHistoryLimit 字段分別指定歷史成功和失敗作業(yè)保存的數(shù)量上限,可以根據(jù)需求進行調(diào)整。
通過使用 CronJob 控制器,可以定期運行作業(yè),并對作業(yè)的運行情況進行管理和記錄。CronJob 的配置文件中的注釋可以幫助我們理解每個字段的含義和作用,方便后續(xù)管理和維護。
三、Service
1、ClusterIP
當(dāng)服務(wù)的類型為 ClusterIP 時,它會為集群內(nèi)部的其他組件分配一個虛擬 IP 地址,并使用服務(wù)監(jiān)聽端口來接收來自其他組件的請求。這樣,其他 Pod 或服務(wù)就可以通過服務(wù)的虛擬 IP 地址和監(jiān)聽端口與服務(wù)進行通信。
kind: Service
apiVersion: v1
metadata:
name: my-service
namespace: app # namespace
spec:
type: ClusterIP
#clusterIP: None # None代表是無頭service
ports:
- port: 8080 # 集群內(nèi)部的服務(wù)監(jiān)聽端口
targetPort: 80 # Pod 內(nèi)部的端口
selector: # 標簽選擇器
app: my-app # 指向該標簽的pod
sessionAffinity: ClientIP # sessionAffinity為Clientip (類似nginx的ip_hash算法,lvs的sh算法)
服務(wù)名稱為 my-service,類型為 ClusterIP,它監(jiān)聽端口 8080,并將請求轉(zhuǎn)發(fā)到 Pod 內(nèi)部的 80 端口。其他組件可以通過訪問 my-service:8080 來與服務(wù)進行通信。
需要注意的是,集群內(nèi)部的服務(wù)監(jiān)聽端口通常是在集群內(nèi)部使用的端口,不直接暴露給外部請求。
如果您需要將服務(wù)公開到集群外部,可以考慮使用其他類型的服務(wù),如 NodePort 或 LoadBalancer。
擴展:
- ClusterIP根據(jù)是否生成ClusterIP又可分為普通Service和Headless Service。
- 普通的ClusterIP service是service name解析為cluster ip,然后cluster ip對應(yīng)到后面的pod ip。
- Headless service是指service name 直接解析為后面的pod ip。實際上Headless service用處不大,dns貌似沒效果需要額外配置
2、NodePort
在NodePort的YAML文件中,ports 下的 port 字段表示服務(wù)在集群內(nèi)部使用的端口號。這是服務(wù)對內(nèi)提供服務(wù)的端口,其他 Pod 可以通過該端口與服務(wù)進行通信。
nodePort 字段表示服務(wù)在節(jié)點上公開的端口號。當(dāng)服務(wù)類型為 NodePort 時,Kubernetes 隨機分配一個未使用的端口號,并將該端口號映射到每個節(jié)點上。這樣,您可以通過節(jié)點的 IP 地址和 nodePort 端口號來訪問服務(wù)。
targetPort 字段是服務(wù)所指向的 Pod 的端口。當(dāng)請求到達 nodePort 監(jiān)聽的端口時,它將被轉(zhuǎn)發(fā)到目標端口(targetPort)上的 Pod 進行處理。
kind: Service
apiVersion: v1
metadata:
name: my-service
spec:
type: NodePort
ports:
- port: 80
targetPort: 8080
nodePort: 30000
selector:
app: my-app# 指向該標簽的pod
該示例中,服務(wù)名稱為 my-service,通過 NodePort 類型將集群中的應(yīng)用程序暴露到節(jié)點的 30000 端口上。集群內(nèi)部的服務(wù)監(jiān)聽端口為 80,將請求轉(zhuǎn)發(fā)到 Pod 上的 8080 端口。
請注意,NodePort 的端口范圍是 30000-32767,確保選擇一個未被占用的端口號。
3、LoadBalancer
需要部署額外的負載均衡器。
apiVersion: v1
kind: Service
metadata:
name: my-service # Service 的名稱
spec:
selector:
app: my-app # 選擇要路由到的 Pod 的標簽
ports:
- name: http # 端口的名稱
protocol: TCP # 端口的協(xié)議類型
port: 80 # Service 暴露的端口號
targetPort: 8080 # 路由到的 Pod 的端口號
type: LoadBalancer # Service 的類型,可以是 ClusterIP、NodePort 或者 LoadBalancer
4、ExternalName
把集群外部的服務(wù)引入到集群內(nèi)部中來,實現(xiàn)了集群內(nèi)部pod和集群外部的服務(wù)進行通信。
ExternalName 類型的服務(wù)適用于外部服務(wù)使用域名的方式,缺點是不能指定端口
還有一點要注意: 集群內(nèi)的Pod會繼承Node上的DNS解析規(guī)則。所以只要Node可以訪問的服務(wù),Pod中也可以訪問到, 這就實現(xiàn)了集群內(nèi)服務(wù)訪問集群外服務(wù)
apiVersion: v1 kind: Service metadata: name: my-externalname namespace: default spec: type: ExternalName externalName: www.baidu.com # 對應(yīng)的外部域名為www.baidu.com
四、Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress # Ingress 的名稱
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1 # 添加 NGINX Ingress 控制器的注解,用于重寫 URL
spec:
rules:
- host: example.com # 定義要匹配的域名
http:
paths:
- path: /appA # URL 路徑
pathType: Prefix # 路徑匹配類型,可以是 Prefix 或 Exact
backend:
service:
name: appA-service # 要路由到的 Service 的名稱
port:
number: 80 # 路由到的 Service 的端口號
- path: /appB(/|$)(.*) # 使用正則表達式匹配 URL 路徑
pathType: Prefix # 路徑匹配類型,可以是 Prefix 或 Exact
backend:
service:
name: appB-service # 要路由到的 Service 的名稱
port:
number: 80 # 路由到的 Service 的端口號
五、ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap # ConfigMap 的名稱
data:
server.conf: |
# Server 配置文件
port=8080
host=localhost
client.conf: |
# Client 配置文件
timeout=5000
retries=3
需要注意的是,
ConfigMap 的配置文件可以包含多個鍵值對,鍵名和對應(yīng)的值可以是任意字符串類型,例如文件內(nèi)容、環(huán)境變量、命令行參數(shù)等。
在使用 ConfigMap 時,可以將其掛載到 Pod 中的容器內(nèi),從而使容器可以輕松地訪問配置信息。
為了更好地管理和維護 ConfigMap,建議使用有意義的名稱和注釋對其進行命名和描述。
六、Secret
apiVersion: v1 kind: Secret metadata: name: my-secret # Secret 的名稱 type: Opaque # Secret 類型(Opaque 表示任意類型) data: username: dXNlcm5hbWU= # 加密后的用戶名 password: cGFzc3dvcmQ= # 加密后的密碼
Secret 的配置文件包含敏感信息,如用戶名、密碼等,需要進行加密處理。在 YAML 文件中,可以將敏感信息以 base64 編碼的方式保存在 data 字段中,以保證安全性。
七、Volume
apiVersion: v1
kind: Pod
metadata:
name: my-pod # Pod 的名稱
spec:
containers:
- name: my-container # 容器的名稱
image: nginx # 容器的鏡像
volumeMounts:
- name: data-volume # 掛載卷的名稱
mountPath: /data # 掛載到容器中的路徑
volumes:
- name: data-volume # 卷的名稱
emptyDir: {} # 空目錄卷
Volume 的配置文件可以包含多個卷定義,每個卷可以是不同類型的卷(如 emptyDir、hostPath、persistentVolumeClaim 等)。在上述示例中,使用的是 emptyDir 類型的卷,它會在 Pod 運行時創(chuàng)建一個空目錄,并將其掛載到容器內(nèi)的指定路徑。
訪問模式:
在 Kubernetes 中,訪問模式(Access Modes)是用來定義持久化存儲卷(Persistent Volume)的訪問方式的。下面是 Kubernetes 支持的三種訪問模式:
- ReadWriteOnce(RWO):該訪問模式表示該存儲卷可以被單個節(jié)點以讀寫方式掛載。這意味著同一時間內(nèi)只能有一個 Pod 能夠掛載并對存儲卷進行讀寫操作。當(dāng)存儲卷被某個節(jié)點上的 Pod 掛載時,它將成為該節(jié)點的專屬卷,在其他節(jié)點上不可見。
- ReadOnlyMany(ROX):該訪問模式表示該存儲卷可以以只讀方式被多個節(jié)點掛載。多個 Pod 可以共享對存儲卷的只讀訪問權(quán)限,但不能進行寫入操作。
- ReadWriteMany(RWX):該訪問模式表示該存儲卷可以以讀寫方式被多個節(jié)點掛載。多個 Pod 可以同時掛載并對存儲卷進行讀寫操作,即具有讀寫共享的功能。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解
這篇文章主要為大家介紹了Rainbond云原生快捷部署生產(chǎn)可用的Gitlab步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04
K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南)
Kubernetes調(diào)度機制是集群的智能調(diào)度中樞,主要完成過濾和打分兩個決策,在生產(chǎn)環(huán)境中,核心調(diào)度策略包括資源調(diào)度、親和性調(diào)度、污點與容忍、拓撲分布約束等,本文介紹K8s Pod調(diào)度機制詳解(從理論到生成實戰(zhàn)指南),感興趣的朋友一起看看吧2025-03-03
安裝ingress-nginx遇到的一些坑實戰(zhàn)記錄
ingress是kubernetes集群對外暴露服務(wù)的一種方式,下面這篇文章主要給大家介紹了關(guān)于安裝ingress-nginx遇到的一些坑,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-09-09
解決k8s namespace 一直處于 Terminating 狀態(tài)的問題
這篇文章主要介紹了k8s namespace 一直處于 Terminating 狀態(tài)的解決方法,以下的 tool 為 Terminating 狀態(tài)的 namespace,下面相關(guān)的一些操作記得將 tool 修改成自己的 namespace 名稱,需要的朋友可以參考下2022-10-10
kubernetes部署dashboard及應(yīng)用小結(jié)
Dashboard?是基于網(wǎng)頁的?Kubernetes?用戶界面,可以對?Deployment?實現(xiàn)彈性伸縮、發(fā)起滾動升級、重啟?Pod?或者使用向?qū)?chuàng)建新的應(yīng)用,這篇文章主要介紹了kubernetes部署dashboard,需要的朋友可以參考下2024-06-06
tkestack/gpu-manager在k8s1.23版本之后的使用方法
這篇文章主要介紹了tkestack/gpu-manager在k8s1.23版本之后的使用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

