k8s是什麼:Docker分佈式系統解決方案
單機版k8s環境搭建:centos7
systemctl disabled firewalld
systemctl stop firewalld
安裝etcd(高可用鍵值數據庫)和k8s
yum update #多次嘗試,確認網絡連接
yum install -y etcd kubernetes
啓動服務(進程)
systemctl start etcd
systemctl start docker #容器創建管理
systemctl start kube-apiserver #所有資源增、刪、改、查等操作入口
systemctl start kube-controller-manager #自動化控制中心
systemctl start kube-scheduler #pod調度
systemctl start kubelet #node節點進程,負責pod對應容器創建、起停
sustemctl start kube-proxy #service通信及負載均衡機制組件
常用操作命令
kubectl get nodes #查看集羣中node個數
kubectl descripe node <node_name> #查看詳細信息
kubectl create -f *.yaml #創建yaml對應資源文件(即kind對象)
kubectl get 對象名稱 #查看對象信息
kubectl get svc service_name -o yaml #查看service ClusterIP
kubectl get pods --namespace=namespace_name #查看命名空間的中的對象
基本概念
k8s中所有資源對象都可以使用yaml或JSON文件定義或描述
通常一個節點運行幾百個pod
master 集羣控制節點 佔用一個服務器,高可用佔3個服務器
node node工作節點 可以是物理機或虛擬機,node IP物理網卡的IP地址
pod kind:pod,包含一個pause容器和其他業務容器(共享pause的網絡棧和volume掛載卷),具有單獨的ip地址及Endpoint(Pod IP+ContainerPort pod之間彼此通信,流量通過TCP/IP node IP流出)
Label 一個資源對象(node、pod、service、rc)可以任意多label,一個label可以任意多資源對象
Replication Controller(RC) 描述期望pod的副本數,根據標籤篩選目標pod,實際副本小於預期則根據模版創建pod
Deployment RC的升級,可以隨時查看當前部署進度
Horizontal Pod Autoscaler(HPA) 橫向擴容,可以使用yaml定義之外的方式定義
StatefulSet 用於管理有狀態的集羣,例如MySql集羣,每個pod都有穩定唯一的網絡標示及規範名稱
Service 具有虛擬IP(Cluster IP)不可ping屬於k8s集羣內部地址,yaml可定義多端口,可使用type=NodePort實現外部訪問Service(例如web端的服務模塊),但有負載均衡問題,若運行在谷歌GCE公有云(type=LoardBalancer)則可以解決
Volume 存儲卷 Pod中能被多容器訪問的共享目錄
Persistent Volume 網絡存儲
Namespace 命名空間 實現多租戶資源隔離,一旦創建就可以指定資源對象(×.yaml)在那個Namespace
Annotation 註解
本文轉自CSDN-k8s關鍵知識點彙總(一)