成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

kubernetes學(xué)習(xí)

jayce / 1866人閱讀

摘要:知識(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 : --discovery-token-ca-cert-hash sha256:

在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

相關(guān)文章

  • Kubernetes 2018 年度簡(jiǎn)史

    摘要:同時(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...

    gougoujiang 評(píng)論0 收藏0
  • K8S學(xué)習(xí)筆記 | 如何部署 Kubernetes master 節(jié)點(diǎn)

    摘要:年初開始研究,至目前已發(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...

    ernest.wang 評(píng)論0 收藏0
  • Kubernetes 2018 年度簡(jiǎn)史

    摘要:同時(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 年開源...

    史占廣 評(píng)論0 收藏0
  • Kubernetes 入門基礎(chǔ)

    摘要:我們要學(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í)。 接...

    myshell 評(píng)論0 收藏0
  • 機(jī)器學(xué)習(xí)里程碑:谷歌開源TensorFlow 0.8完全實(shí)現(xiàn)并行計(jì)算并原生態(tài)支持與kubernete

    摘要:最近谷歌正式宣布已經(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...

    xiaoqibTn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<