閱讀109 返回首頁    go 人物


K8S學習筆記

1.常用命令

服務啟動

[root@k8s-master ~]# systemctl start etcd
[root@k8s-master ~]# systemctl start docker
[root@k8s-master ~]# systemctl start kube-apiserver.service 
[root@k8s-master ~]# systemctl start kube-apiserver.service 
[root@k8s-master ~]# systemctl start kube-controller-manager.service
[root@k8s-master ~]# systemctl start kube-scheduler.service
[root@k8s-master ~]# systemctl start kubelet.service 
[root@k8s-master ~]# systemctl start kube-proxy.service
[root@k8s-master ~]# kubectl expose deployment nginx-app --type=NodePort --port=80 --target-port=80
service "nginx-app" exposed
[root@k8s-master ~]# kubectl describe service nginx-app
Name:           nginx-app
Namespace:      default
Labels:         run=nginx-app
Selector:       run=nginx-app
Type:           NodePort
IP:         10.254.73.139
Port:           <unset> 80/TCP
NodePort:       <unset> 30048/TCP
Endpoints:      172.17.0.2:80
Session Affinity:   None
No events.

滾動升級

[root@k8s-master ~]# kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2

k8s概念

kubernetes集群

etcd:分布式存儲;保存了整個集群的狀態;

controller:控製節點; 控製節點負責整個集群的管理,例如:容器調度、資源狀態維護、自動擴展、滾動更新等;

node:服務節點;服務節點是真正運行容器的主機;負責管理鏡像和容器以及cluster內的服務發現和負載均衡;

k8s架構原理

核心層:Kubernetes最核心的功能,對外提供API構建高層應用,對內提供插件式應用執行環境;

應用層:部署(無狀態應用、有狀態應用、批處理任務、集群應用)和路由(服務發現、DNS解析)

管理層:係統度量()

pod概念

K8S SLB限製

  1. 接入已有的負載均衡的設備;
  2. 多租戶的網絡情況下,容器網絡和主機網絡是隔離的,這種情況下Kube-proxy是無法工作的;

核心組件

  1. etcd:用於服務發現、共享配置以及一致性保障;
  2. API server: 核心組件,提供集群管理的REST API接口,
  3. Kubelet: 每個節點上運行一個Kubelet服務進程,默認監聽10250端口,接收並執行master發來的指令,管理Pod及Pod中的容器; ### 容器健康檢查
  4. LivenessProbe探針:判斷容器是否健康,如若檢查到不健康則執行刪除操作;
  5. ReadinessProbe探針:判斷容器是否啟動完成且準備接受請求;如果探測失敗則修改容器狀態;
  6. LivenessProbe探針檢測方式: ExecAction#在容器內執行一個命令,如果退出狀態碼為0,則容器健康; TCPSocketActioon#通過容器的IP地址和端口號執行TCP檢查; HTTPGetAction#通過HTTP GET方法檢查,如果狀態碼大於200且小於400,則容器健康;

最後更新:2017-10-23 10:33:43

  上一篇:go  如何讓數據價值最大化?阿裏全域大數據係統深度解讀
  下一篇:go  利用for循環完成你的第一個腳本