摘要:知識(shí)點(diǎn)核心組件保存整個(gè)集群的狀態(tài)信息,感覺(jué)相當(dāng)于的數(shù)據(jù)庫(kù)提供對(duì)資源操作的唯一入口,并提供認(rèn)證授權(quán),訪問(wèn)控制,注冊(cè)與發(fā)現(xiàn)等機(jī)制負(fù)責(zé)維護(hù)集群的狀態(tài),故障檢測(cè),自動(dòng)擴(kuò)展,滾動(dòng)更新等負(fù)責(zé)對(duì)資源的調(diào)度,按著預(yù)定的調(diào)度策略將調(diào)度到相應(yīng)的集群上負(fù)責(zé)維護(hù)容
kubernetes kubernetes 知識(shí)點(diǎn)
1. 核心組件
etcd 保存整個(gè)集群的狀態(tài)信息,感覺(jué)相當(dāng)于k8s的數(shù)據(jù)庫(kù)
apiserver 提供對(duì)k8s資源操作的唯一入口,并提供認(rèn)證授權(quán),訪問(wèn)控制,API注冊(cè)與發(fā)現(xiàn)等機(jī)制
controller manager 負(fù)責(zé)維護(hù)集群的狀態(tài),eg:故障檢測(cè),自動(dòng)擴(kuò)展pod,滾動(dòng)更新等
scheduler 負(fù)責(zé)對(duì)資源的調(diào)度,按著預(yù)定的調(diào)度策略將pod調(diào)度到相應(yīng)的集群上
kubelet 負(fù)責(zé)維護(hù)容器的生命周期,相當(dāng)于在node上的agent,負(fù)責(zé)管理pods和它們上面的容器,images鏡像、volumes等
kube-proxy 負(fù)責(zé)為service提供集群內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡
2. kubernetes 常用命令
查看集群信息
kubectl cluster-info
在集群中運(yùn)行一個(gè)應(yīng)用程序
kubectl run nginx-test --replicas=3 --labels="app=nginx" --image=nginx:latest --port=80 #使用kubectl run命令啟動(dòng)一個(gè)pod,自定義名稱為nginx-test,啟動(dòng)了3個(gè)pod副本,并給pod打上標(biāo)簽app=nginx,這個(gè)pod拉取docker鏡像nginx:latest,開放端口80
查看集群中所有pod
kubectl get po kubectl get pod kubectl get pods
根據(jù)標(biāo)簽label查看集群中pod
kubectl get pods -l app kubectl get pods -l app=nginx
查看標(biāo)簽為app=nginx的pod在集群中具體分配在哪個(gè)節(jié)點(diǎn)和pod的ip
kubectl get pods -l app=nginx -o wide
查看pod的詳細(xì)信息
kubectl describe pods
查看集群中的deployment(其他命令與pod類似)
kubectl get deploy
查看集群中的replica set(其他命令與pod類似)
kubectl get replicaset kubectl get rs
創(chuàng)建一個(gè)service,集群中的資源通過(guò)service與外界交互
kubectl expose deploy nginx-test --port=8080 --target-port=80 --name=nginx-service #k8s集群通過(guò)deploy來(lái)管理,導(dǎo)出名為nginx-test的deploy,為其創(chuàng)建名為nginx-service的服務(wù)開放給外界,使外界能通過(guò)nginx-service來(lái)和nginx-test交互,外部端口為8080,內(nèi)部端口為80
查看集群中的服務(wù)(其他命令與pod類似)
kubectl get svc
查看pod中容器的日志
kubectl log#查看指定pod內(nèi)容器的日志 kubectl log -l app=nginx #查看標(biāo)簽lable為app=nginx下的pod的容器日志
pod的副本的擴(kuò)容和縮容
kubectl scale deploy nginx-test --replicas10 #通過(guò)kubectl scale將名為nginx-test的deploy重新定義有10個(gè)副本pod
查看pod副本擴(kuò)容縮容的實(shí)時(shí)進(jìn)度
kubectl rollout status deploy nginx-test
刪除資源
pod和rs不能直接被刪除,其被deploy控制,即使刪除了某一pod,也會(huì)創(chuàng)建新的pod來(lái)對(duì)應(yīng)配置pod副本數(shù)量,要想刪除pod,只能用刪除其deploy來(lái)刪除,或者變更pod副本配置縮容(如上)
kubectl delete deploy nginx-test #刪除部署的deploy(刪除其對(duì)于的pod和rs) kubectl delete svc nginx-service #刪除創(chuàng)建的service
3. 應(yīng)用創(chuàng)建部署yaml文件
tomsun28之后的k8s應(yīng)用部署修改,都確定使用apply形式部署更新,使用git版本控制創(chuàng)建資源,好處多多
kubectl apply -f nginx.yaml ##更新式創(chuàng)建資源,如果不存在此資源則創(chuàng)建,如存在改動(dòng)則調(diào)整資源(推薦) kubectl delete -f nginx.yaml #資源(pod,deployment,service,replicaset...)刪除銷毀
kubernetes部署nginx集群
nginx.yaml :
# ----------------------nginx--------------------- # # ------nginx deployment------ # kind: Deployment apiVersion: apps/v1beta2 metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: 192.167.2.144:5000/nginx:latest ports: - containerPort: 80 --- # -------nginx-service--------- # apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: NodePort ports: - port: 80 targetPort: 80 nodePort: 30001 selector: app: nginx
kubectl apply -f nginx.yaml
記一下對(duì)kubernetes集群的搭建部署ubantu下用kubeadm搭建kubernetes集群
官方安裝教程
ubuntu + docker 環(huán)境 (目前是兩個(gè)服務(wù)器組建集群server1+server2)
安裝kubelet kubeadm和kubectl
安裝 apt-transport-https
# apt-get update && apt-get install -y apt-transport-https
安裝gpg證書(阿里鏡像倉(cāng)庫(kù)的k8s)
# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
更新軟件源信息
# cat << EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF
更新并安裝kubelet kubeadm kubectl
# apt-get update && apt-get install -y kubelet kubeadm kubectl
指定版本為:
# apt-get update && apt-get install -y kubelet=1.11.1-00 kubeadm=1.11.1-00 kubectl=1.11.1-00
關(guān)閉swap
sudo swapoff -a
master server1上初始化部署kubernetes的master
獲取初始化所需版本docker鏡像,k8s=v1.11.1在我的docker hub "s tomsun28可以拉取
# kubeadm config images list ##查詢當(dāng)前kubeadm版本所需images # kubeadm config images pull ##拉取這些images k8s=v1.11.1所對(duì)應(yīng)鏡像及版本: k8s.gcr.io/coredns:1.1.3 k8s.gcr.io/etcd-amd64:3.2.18 k8s.gcr.io/kube-apiserver-amd64:v1.11.1 k8s.gcr.io/kube-controller-manager-amd64:v1.11.1 k8s.gcr.io/kube-proxy-amd64:v1.11.1 k8s.gcr.io/kube-scheduler-amd64:v1.11.1 k8s.gcr.io/pause:3.1
初始化master
kubeadm init --kubernetes-version=v1.11.1 --apiserver-advertise-address=116.196.81.106 --pod-network-cidr=10.244.0.0/16
--apiserver-advertise-address=指定apiserver的訪問(wèn)ip,ip默認(rèn)為當(dāng)前虛擬機(jī)的默認(rèn)網(wǎng)卡ip. 當(dāng)ip為內(nèi)網(wǎng)地址時(shí),k8s集群只能搭建在網(wǎng)段內(nèi)部,如果有需求通過(guò)外網(wǎng)ip來(lái)操作apiserver,需要在啟動(dòng)集群時(shí)添加可信參數(shù) --apiserver-cert-extra-sans=116.196.81.106 將外網(wǎng)的ip添加進(jìn)去. 當(dāng)ip為外網(wǎng)地址時(shí),可以實(shí)現(xiàn)不同網(wǎng)段的虛擬機(jī)組成k8s集群(目前我就是這個(gè)需要,一個(gè)京東云一個(gè)阿里云),暫時(shí)還沒(méi)測(cè)這種跨公網(wǎng)的集群性能咋樣,畢竟考慮到網(wǎng)速帶寬等不如內(nèi)網(wǎng),但有一個(gè)優(yōu)勢(shì)就是可以整合不同的資源,不被同一云商所束縛,jd掛了ali還可以用.
成功之后會(huì)有join集群的腳步提示,記一下
kubeadm join 192.168.0.3:6443 --token q6gmgt.3dakenwttapw4n2o --discovery-token-ca-cert-hash sha256:dbf69119e962456c239c5f7821ee9a0db46fb643fc40da8776d4e032de072085
根據(jù)output提示,to start using your cluster, you need to run(no root user )
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
或者(root user):
export KUBECONFIG=/etc/kubernetes/admin.conf
安裝 pod network 提供 pods 節(jié)點(diǎn)之前相互通信
運(yùn)行下面命令設(shè)置 /proc/sys/net/bridge/bridge-nf-call-iptables為1
sysctl net.bridge.bridge-nf-call-iptables=1
選擇 flannel 作為 pod network
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/c5d10c8/Documentation/kube-flannel.yml
要使 flannel 能正常使用,需要在master初始化時(shí) kubeadm init 添加對(duì)應(yīng)pod-network-cidr
kubeadm init --pod-network-cidr=10.244.0.0/16
解除master不能調(diào)度運(yùn)行其他pod的限制
kubectl taint nodes --all node-role.kubernetes.io/master-
server2上部署kebernetes并作為節(jié)點(diǎn)join to master
在server2服務(wù)器上執(zhí)行步驟2
作為node節(jié)點(diǎn)加入到master集群中
kubeadm join --token
在master上查看集群node節(jié)點(diǎn)分布
kubectl get nodes
對(duì)kubeadm所做的搭建進(jìn)行undo revert
kubeadm reset
參考來(lái)自
kubernetes官方部署文檔
轉(zhuǎn)載請(qǐng)注明 from tomsun28
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32822.html
摘要:同時(shí)該版本在安全性和等關(guān)鍵功能上作出了改進(jìn)年月日,發(fā)布。盡管谷歌這些年來(lái)是的主要貢獻(xiàn)者,但現(xiàn)在其他技術(shù)人員在這個(gè)項(xiàng)目上的貢獻(xiàn)量已經(jīng)幾乎和谷歌持平了。這些舉動(dòng)都在表明云計(jì)算市場(chǎng)的戰(zhàn)火將繼續(xù)蔓延,已經(jīng)成為兵家必爭(zhēng)之地。年月日,宣布推出。 Kubernetes 在過(guò)去幾年中一直是云計(jì)算領(lǐng)域最著名的開源項(xiàng)目之一。20...
摘要:年初開始研究,至目前已發(fā)表近篇學(xué)習(xí)筆記。同時(shí),他也是中國(guó)社區(qū)的活躍者,見證了中國(guó)社區(qū)的一路成長(zhǎng)。經(jīng)本人授權(quán),從本周開始,中國(guó)將轉(zhuǎn)載他的學(xué)習(xí)筆記,由淺入深地分享他在學(xué)習(xí)過(guò)程中的收獲。節(jié)點(diǎn)包含的組件目前這三個(gè)組件需要部署在同一臺(tái)機(jī)器上。 作者:宋凈超 宋凈超(Jimmy Song),TalkingData 容器技術(shù)負(fù)責(zé)人,微服務(wù)和云原生應(yīng)用布道者。2017 年初開始研究 Kubernete...
摘要:同時(shí)該版本在安全性和等關(guān)鍵功能上作出了改進(jìn)年月日,發(fā)布。盡管谷歌這些年來(lái)是的主要貢獻(xiàn)者,但現(xiàn)在其他技術(shù)人員在這個(gè)項(xiàng)目上的貢獻(xiàn)量已經(jīng)幾乎和谷歌持平了。這些舉動(dòng)都在表明云計(jì)算市場(chǎng)的戰(zhàn)火將繼續(xù)蔓延,已經(jīng)成為兵家必爭(zhēng)之地。年月日,宣布推出。Kubernetes 在過(guò)去幾年中一直是云計(jì)算領(lǐng)域最著名的開源項(xiàng)目之一。 2018 年,Kubernetes 度過(guò)了自己的 4 歲生日。從 2014 年開源...
摘要:我們要學(xué)習(xí),就有首先了解的技術(shù)范圍基礎(chǔ)理論知識(shí)庫(kù)等,要學(xué)習(xí),肯定要有入門過(guò)程,在這個(gè)過(guò)程中,學(xué)習(xí)要從易到難,先從基礎(chǔ)學(xué)習(xí)。組件組件一個(gè)集群是由一組被稱為節(jié)點(diǎn)的機(jī)器或虛擬機(jī)組成,節(jié)點(diǎn)有兩種類型。我們要學(xué)習(xí) Kubernetes,就有首先了解 Kubernetes 的技術(shù)范圍、基礎(chǔ)理論知識(shí)庫(kù)等,要學(xué)習(xí) Kubernetes,肯定要有入門過(guò)程,在這個(gè)過(guò)程中,學(xué)習(xí)要從易到難,先從基礎(chǔ)學(xué)習(xí)。 接...
摘要:最近谷歌正式宣布已經(jīng)完全實(shí)現(xiàn)并行計(jì)算并原生態(tài)支持與相結(jié)合,使得谷歌機(jī)器學(xué)習(xí)開源項(xiàng)目在支持集群化并行化和分布式訓(xùn)練方面都實(shí)現(xiàn)了質(zhì)的飛躍。隨著和兩大技術(shù)的結(jié)合,這將對(duì)機(jī)器學(xué)習(xí)技術(shù)的實(shí)踐產(chǎn)生深遠(yuǎn)影響。 showImg(https://segmentfault.com/img/bVuqxr); 最近谷歌正式宣布TensorFlow 0.8 已經(jīng)完全實(shí)現(xiàn)并行計(jì)算并原生態(tài)支持與kubernetes...
閱讀 3268·2021-10-27 14:20
閱讀 2536·2021-10-08 10:05
閱讀 1635·2021-09-09 09:33
閱讀 2908·2019-08-30 13:16
閱讀 1445·2019-08-29 18:34
閱讀 1180·2019-08-29 10:58
閱讀 1233·2019-08-28 18:22
閱讀 1231·2019-08-26 13:33