1.形成一個k8s集羣服務需要那些支持
1.1 什麼是master節點
可以在中文社區文檔進行查詢
master節點是kubernetes cluster的大腦,是用來管理支配所有有關的node節點的服務以及連接網絡架構問題,當然master也可以是一個節點。
它主要擁有一下功能以及應用:
1.API Server(k8s.gcr.io/kube-apiserver): # 是kubernetes cluster的前端接口,各種客戶端工具以及kubernetes其他組件可以通過它管理cluster的各種資源
2.k8s.gcr.io/kube-scheduler:# 負責決定將pod放在哪個node上運行
3.k8s.gcr.io/kube-controller-manager: # 負責管理cluster各種資源,保證資源處於預期狀態
4.k8s.gcr.io/etcd:# 負責保存集羣的配置信息和各種資源的狀態信息,當數據發生變化的時候,etcd會快速通知kubernetes相關組件
5.pod網絡:# pod要能夠相互通信,kubernetes cluster必須部署pod網絡,flannel是其中一個可選的方案
1.2 node節點
node節點:1.kubelet
2.kube-proxy
3.pod網絡
master同時也是一個node幾乎所有的kubernetes組建本身也運行在pod裏面。
2. deployment部署
kubernetes通過各種controller來管理pod的生命週期,爲了滿足不同的業務場景,kubernetes開發了多種,我們首先學習最常用deployment
2.1 運行deployment
我們在以往的操作中如果出現部署錯誤,我們就會在日誌中進行查看,但是如果我們在一個k8s的部署中出現錯誤,我們就可以使用一下命令查看有關部署的詳細的信息
replicaset(容器副本)
[k8s@server1 ~]$ kubectl describe deployment nginx-deployment
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 3m24s deployment-controller Scaled up replica set nginx-deployment-748ff87d9d to 2
# 這裏告訴我們創建了一個 replicaset(容器副本) nginx-deployment-748ff87d9d
# Events是 deployment的日誌,記錄了replicaset的啓動過程
[k8s@server1 ~]$ kubectl describe replicaset nginx-deployment-748ff87d9d
Name: nginx-deployment-748ff87d9d
Namespace: default
Selector: pod-template-hash=748ff87d9d,run=nginx-deployment
Labels: pod-template-hash=748ff87d9d
run=nginx-deployment
Annotations: deployment.kubernetes.io/desired-replicas: 2
deployment.kubernetes.io/max-replicas: 3
deployment.kubernetes.io/revision: 1
# 指明replicaset是由Deployment/nginx-deployment創建的
Controlled By: Deployment/nginx-deployment
Replicas: 2 current / 2 desired
Pods Status: 2 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
Labels: pod-template-hash=748ff87d9d
run=nginx-deployment
Containers:
nginx-deployment:
Image: nginx:1.7.9
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 16m replicaset-controller Created pod: nginx-deployment-748ff87d9d-bxc8r
Normal SuccessfulCreate 16m replicaset-controller Created pod: nginx-deployment-748ff87d9d-25k5w
在master上:用戶通過kubectl創建deployment,deployment創建replicaset(容器副本),replicaset創建pod(最小工作單元)。
2.2 刪除部署
[k8s@server1 ~]$ kubectl delete deployment nginx-deployment
這樣就可以將你部署錯誤的或者出現你不在需要的部署刪除成功了。