国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

kubernetes學習

jayce / 1858人閱讀

摘要:知識點核心組件保存整個集群的狀態信息,感覺相當于的數據庫提供對資源操作的唯一入口,并提供認證授權,訪問控制,注冊與發現等機制負責維護集群的狀態,故障檢測,自動擴展,滾動更新等負責對資源的調度,按著預定的調度策略將調度到相應的集群上負責維護容

kubernetes kubernetes 知識點

1. 核心組件

etcd 保存整個集群的狀態信息,感覺相當于k8s的數據庫

apiserver 提供對k8s資源操作的唯一入口,并提供認證授權,訪問控制,API注冊與發現等機制

controller manager 負責維護集群的狀態,eg:故障檢測,自動擴展pod,滾動更新等

scheduler 負責對資源的調度,按著預定的調度策略將pod調度到相應的集群上

kubelet 負責維護容器的生命周期,相當于在node上的agent,負責管理pods和它們上面的容器,images鏡像、volumes等

kube-proxy 負責為service提供集群內部的服務發現和負載均衡

2. kubernetes 常用命令

查看集群信息

kubectl cluster-info

在集群中運行一個應用程序

kubectl run nginx-test  --replicas=3 --labels="app=nginx" --image=nginx:latest --port=80  
#使用kubectl run命令啟動一個pod,自定義名稱為nginx-test,啟動了3個pod副本,并給pod打上標簽app=nginx,這個pod拉取docker鏡像nginx:latest,開放端口80

查看集群中所有pod

kubectl get po
kubectl get pod
kubectl get pods

根據標簽label查看集群中pod

kubectl get pods -l app
kubectl get pods -l app=nginx

查看標簽為app=nginx的pod在集群中具體分配在哪個節點和pod的ip

kubectl get pods -l app=nginx -o wide

查看pod的詳細信息

kubectl describe pods 

查看集群中的deployment(其他命令與pod類似)

kubectl get deploy

查看集群中的replica set(其他命令與pod類似)

kubectl get replicaset
kubectl get rs

創建一個service,集群中的資源通過service與外界交互

kubectl expose deploy nginx-test --port=8080 --target-port=80 --name=nginx-service
#k8s集群通過deploy來管理,導出名為nginx-test的deploy,為其創建名為nginx-service的服務開放給外界,使外界能通過nginx-service來和nginx-test交互,外部端口為8080,內部端口為80

查看集群中的服務(其他命令與pod類似)

kubectl get svc

查看pod中容器的日志

kubectl log     #查看指定pod內容器的日志  
kubectl log -l app=nginx #查看標簽lable為app=nginx下的pod的容器日志

pod的副本的擴容和縮容

kubectl scale deploy nginx-test --replicas10
#通過kubectl scale將名為nginx-test的deploy重新定義有10個副本pod

查看pod副本擴容縮容的實時進度

kubectl rollout status deploy nginx-test

刪除資源

pod和rs不能直接被刪除,其被deploy控制,即使刪除了某一pod,也會創建新的pod來對應配置pod副本數量,要想刪除pod,只能用刪除其deploy來刪除,或者變更pod副本配置縮容(如上)

kubectl delete deploy nginx-test  #刪除部署的deploy(刪除其對于的pod和rs)
kubectl delete svc nginx-service  #刪除創建的service

3. 應用創建部署yaml文件

tomsun28之后的k8s應用部署修改,都確定使用apply形式部署更新,使用git版本控制創建資源,好處多多

kubectl apply -f nginx.yaml    ##更新式創建資源,如果不存在此資源則創建,如存在改動則調整資源(推薦)
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

記一下對kubernetes集群的搭建部署

ubantu下用kubeadm搭建kubernetes集群

官方安裝教程

ubuntu + docker 環境 (目前是兩個服務器組建集群server1+server2)

安裝kubelet kubeadm和kubectl

安裝 apt-transport-https

# apt-get update && apt-get install -y apt-transport-https

安裝gpg證書(阿里鏡像倉庫的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

關閉swap

sudo swapoff -a

master server1上初始化部署kubernetes的master

獲取初始化所需版本docker鏡像,k8s=v1.11.1在我的docker hub "s tomsun28可以拉取

# kubeadm config images list ##查詢當前kubeadm版本所需images
# kubeadm config images pull ##拉取這些images
k8s=v1.11.1所對應鏡像及版本:
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的訪問ip,ip默認為當前虛擬機的默認網卡ip.
當ip為內網地址時,k8s集群只能搭建在網段內部,如果有需求通過外網ip來操作apiserver,需要在啟動集群時添加可信參數 --apiserver-cert-extra-sans=116.196.81.106 將外網的ip添加進去.  
當ip為外網地址時,可以實現不同網段的虛擬機組成k8s集群(目前我就是這個需要,一個京東云一個阿里云),暫時還沒測這種跨公網的集群性能咋樣,畢竟考慮到網速帶寬等不如內網,但有一個優勢就是可以整合不同的資源,不被同一云商所束縛,jd掛了ali還可以用.

成功之后會有join集群的腳步提示,記一下

kubeadm join 192.168.0.3:6443 --token q6gmgt.3dakenwttapw4n2o --discovery-token-ca-cert-hash sha256:dbf69119e962456c239c5f7821ee9a0db46fb643fc40da8776d4e032de072085

根據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 節點之前相互通信

運行下面命令設置 /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初始化時 kubeadm init 添加對應pod-network-cidr

kubeadm init --pod-network-cidr=10.244.0.0/16

解除master不能調度運行其他pod的限制

kubectl taint nodes --all node-role.kubernetes.io/master-

server2上部署kebernetes并作為節點join to master

在server2服務器上執行步驟2

作為node節點加入到master集群中

kubeadm join --token : --discovery-token-ca-cert-hash sha256:

在master上查看集群node節點分布

kubectl get nodes

對kubeadm所做的搭建進行undo revert

kubeadm reset

參考來自
kubernetes官方部署文檔




轉載請注明 from tomsun28

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32822.html

相關文章

  • Kubernetes 2018 年度簡史

    摘要:同時該版本在安全性和等關鍵功能上作出了改進年月日,發布。盡管谷歌這些年來是的主要貢獻者,但現在其他技術人員在這個項目上的貢獻量已經幾乎和谷歌持平了。這些舉動都在表明云計算市場的戰火將繼續蔓延,已經成為兵家必爭之地。年月日,宣布推出。 Kubernetes 在過去幾年中一直是云計算領域最著名的開源項目之一。20...

    gougoujiang 評論0 收藏0
  • K8S學習筆記 | 如何部署 Kubernetes master 節點

    摘要:年初開始研究,至目前已發表近篇學習筆記。同時,他也是中國社區的活躍者,見證了中國社區的一路成長。經本人授權,從本周開始,中國將轉載他的學習筆記,由淺入深地分享他在學習過程中的收獲。節點包含的組件目前這三個組件需要部署在同一臺機器上。 作者:宋凈超 宋凈超(Jimmy Song),TalkingData 容器技術負責人,微服務和云原生應用布道者。2017 年初開始研究 Kubernete...

    ernest.wang 評論0 收藏0
  • Kubernetes 2018 年度簡史

    摘要:同時該版本在安全性和等關鍵功能上作出了改進年月日,發布。盡管谷歌這些年來是的主要貢獻者,但現在其他技術人員在這個項目上的貢獻量已經幾乎和谷歌持平了。這些舉動都在表明云計算市場的戰火將繼續蔓延,已經成為兵家必爭之地。年月日,宣布推出。Kubernetes 在過去幾年中一直是云計算領域最著名的開源項目之一。 2018 年,Kubernetes 度過了自己的 4 歲生日。從 2014 年開源...

    史占廣 評論0 收藏0
  • Kubernetes 入門基礎

    摘要:我們要學習,就有首先了解的技術范圍基礎理論知識庫等,要學習,肯定要有入門過程,在這個過程中,學習要從易到難,先從基礎學習。組件組件一個集群是由一組被稱為節點的機器或虛擬機組成,節點有兩種類型。我們要學習 Kubernetes,就有首先了解 Kubernetes 的技術范圍、基礎理論知識庫等,要學習 Kubernetes,肯定要有入門過程,在這個過程中,學習要從易到難,先從基礎學習。 接...

    myshell 評論0 收藏0
  • 機器學習里程碑:谷歌開源TensorFlow 0.8完全實現并行計算并原生態支持與kubernete

    摘要:最近谷歌正式宣布已經完全實現并行計算并原生態支持與相結合,使得谷歌機器學習開源項目在支持集群化并行化和分布式訓練方面都實現了質的飛躍。隨著和兩大技術的結合,這將對機器學習技術的實踐產生深遠影響。 showImg(https://segmentfault.com/img/bVuqxr); 最近谷歌正式宣布TensorFlow 0.8 已經完全實現并行計算并原生態支持與kubernetes...

    xiaoqibTn 評論0 收藏0

發表評論

0條評論

jayce

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<