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 #檢視詳細資訊
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關鍵知識點彙總(一)
golang defer 關鍵知識點彙總
1 defer 關鍵字,可以用來註冊多個延遲呼叫,這些呼叫以先進後出 filo 的順序 在函式返回前被執行。常用於保證一些資源最終一定能夠得到 和釋放。2 關於defer的使用,主要注意以下幾點 func main func f int v v return v func main defer fu...
k8s入門知識介紹01
k8s中文社群 1四組基本概念 pod pod控制器 name namespace lable label選擇器 service ingress 1.1 pod和pod控制器 kubernetes 的pod控制器 podk8s裡能夠被執行的最小邏輯單元 1個pod裡面可以執行多個容器 sidecar...
k8s 理論知識總結
容器的本質是乙個程序.這個程序和普通程序的區別 有限的資源使用許可權 通過 linux cgroup 實現 乙個應用中不同的程序間可以有親密關係,比如說需要頻繁通訊,需要共享某些資源 網路,儲存等 這些程序需要被執行在相同的 node 宿主機 上,為了描述這種關係,k8s 將有親密關係的 conta...