rancher學習

1.可訪問rancher、k8s官網
2.基於Borg的開源版本
3.每三個月一個新版本,目前版本1.17

CRI - Runtime
CNI - Network
CSI - Storage

網絡方案
Flannel - 默認vxlan模式
Calico - BGP模式/IPIP模式
Canal - Flannel(模式) + Calico(策略)

vim cluster.yml 部署1.6版本
rke up --config cluster.yml 

rke部署 默認證書10年

kubectl get cs - 查看組件狀態
kubectl api-resources/api-versions - API信息
kubectl explain <resource> - 查看資源verson信息

Label標籤 - key/value
Annotation註釋 - 關聯資源對象被其餘程序調用

kubectl label node node01 K=V  設置
kubectl annotate nodes k8s-node01 K=
kubectl label node node01 K-   刪除
kubectl annotate nodes k8s-node01 K-
查看
kubectl get nodes k8s-node01 --show-labels
kubectl describe nodes k8s-node01
kubectl get nodes k8s-node01 -o yaml
kubectl get nodes k8s-node01 -o json

pod內一個或多個容器,可根據容器的生命週期是否一致來評估
調度流程
api-server - etcd - scheduler - kubelet - docker

查看pod事件
kubectl describe pod myapp-pod1

kubectl create namespace test
kubectl -n test create -f pod.yaml
kubectl exec -it pod名 -c 容器名

Init容器

Static Pod - 在固定節點、特定目錄下建立yaml文件(業務場景不多)
(rke部署k8s,默認在/etc/k8s/maniftest - cluster.yaml配置文件指定)
沒法經過api-server刪除,只能經過api查看鏡像狀態,只能經過刪除yaml文件實現

Replicaset副本數
kubectl get replicasets.apps
kubectl get deployments.apps
kubectl describe deployments.apps nginx-deployment
kubectl rollout history deployment nginx-deployment
daemonset 每一個節點運行一個副本
statfulset 有狀態應用
Job Cronjob 

Service轉發
Clusterip - 內部集羣
Nodeport - 30000-32767
Loadblance - 雲服務商負載均衡
Externalname - 外部服務傳入K8S集羣、經過DSN實現
ExternalIP - 指定主機端口解析

建立service後自動建立相應endpoints
kubectl get service
kubectl get endpoints

ExternalName - 解析外部服務
ExternalIPs - 指定主機端口解析,不像nodeport暴露全部主機端口

同個Namespace的應用能夠直接經過service_name訪問。
跨Namespace訪問經過service_name.namespace。

pvc和pv綁定,刪除pvc後pvc數據reatain保留可是沒法被其餘pvc調用
除非修改pv.yaml中的pvc數據
刪除pv後數據仍然保留,除非修改數據保留參數retain-recylce

kubectl cordon維護模式
kubectl uncordon解除維護
kubectl drain node01應用遷移

Ingress
將HTTP和HTTPS以外的服務公開到因特網一般使用類型是NodePort或loadbalance的service
ingress資源只支持用於指導HTTP通訊的規則

CRI  runtime    引擎
CNI  network    網絡
CSI  storage    存儲

Flannel vxlan - 跨二層
Calico 
Canal = Flannel網絡方案 + Calico網絡策略

Alpha測試   v1alpha1
Beta測試    v2beta3
穩定版本    vX 

查看當前Kubernetes集羣的api版本
kubectl api-versions
查看某個資源的解釋信息
kubectl explain <resources>

標籤label - label slector
註釋annotate

controller類型
replicaset     pod副本數量
deployment     無狀態服務,提供更新、回滾
daemonset      每一個節點一個pod副本
statefulset    有狀態應用程序
jobs
cronjob

負載均衡與服務發現
service轉發後端方式
clusterip      默認type
nodeport
loadbalance    外部負載均衡器路由到service
externalname   外部服務域名映射到集羣內部

service端口類型
port:svc對內端口
target-port:pod暴漏端口
nodeport:對外暴漏端口

集羣外部訪問
nodeport
lb
externalip - 單個node的端口

會話保持 - clien鏈接到同一pod
service.spec.sessionAffinity - ClientIP(默認爲none)
最大會話停留時間
service.spec.sessionAffinityConfig.clientIP.timeoutSeconds

ingress實現針對url、path、ssl的請求轉發
dns策略默認使用clusterfirst

健康檢查
livenessprobe        存活 - 異常後重啓
readinessprobe       就緒 - 就緒後分發
container診斷方法:exec \ tcpsocket \ httpget

數據存儲
PV PVC
RWO  ROM  RWM
pv策略:retain保留 recycle回收 delete刪除
靜態 - 手動建立pv對應pvc
動態 - 建立storageclass存儲類
configmap  secret
emptydir  

POD節點分配
nodename 
nodeselector - 經過label約束 pod.sec.nodeselector
親和與反親和 affinity anti-affinity
node-affinity pod-affinity
污點與寬容   taint toleration 

應用的彈性伸縮HPA
監控指標獲取 metric-server
pod必須添加request資源

集羣安全配置管理
namespace配置cpu、mem、pod num額度

應用的資源限制
requests   最小資源請求
limits     最大資源使用
若是隻配limit沒配request,那麼默認request=limit。
當pod內存超過limit時,會被oom。
cpu   1core = 1000m 
mem   Mi
limit range

network policy
RBAC
相關文章
相關標籤/搜索