kubernetes入门到精通(一):内容编排与k8s介绍,集群构建教程,如何开启dashboard
集群環境容器部署的困境
怎么分配這 10 臺服務器?2 萬臺呢?
容器編排工具
- docker compose,單機容器編排工具
- docker swam 跨主機的,集群容器編排工具
- kubernetes,google 提供的容器編排工具,非常成熟,底層基于 docker
kubernetes 的職責
K8s的基本概念
下圖由 3 個宿主機形成一個集群。一臺 master,兩臺 node,node可以是獨立的物理機,也可以是虛擬機。
每一個節點中,都有Pod,是k8s控制的最小單元。
label 相當于 pod 的別名
replication controller 用來控制 pod 的數量
kubelet 用來提供k8s相關命令的執行
kebe-proxy 是代理,提供跨容器(跨主機)的通信
Pod(豆莢)
Pause 容器
容器之間共享命名空間,比如使用 localhost:port 就可以互相訪問
國內安裝k8s的四種途徑
環境準備
實際上的主機規劃:
- 10.0.0.131 node01 -> master
- 10.0.0.132 node02 -> node
- 10.0.0.133 node03 -> node
1、設置時區
timedatectl set-timezone Asia/Shanghai2、設置 ip 與主機名稱對應
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.0.0.131 node01 10.0.0.132 node02 10.0.0.133 node03 10.0.0.134 node04 # 這一臺是之前搭 zk 的時候用的,不用管它3、關閉防火墻、關閉selinux(生產環境不要關閉)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 systemctl disable firewalld systemctl stop firewalld4、安裝kubeadm快速部署工具
1. 將鏡像包k8s-install上傳至服務器每個節點,可以使用scp命令拷貝到另外兩臺機器上
我們通過離線安裝的方式
XFTP上傳安裝文件
2. 按每個Centos上安裝Docker
tar -zxvf docker-ce-18.09.tar.gz cd docker yum localinstall -y *.rpm systemctl start docker # 啟動 systemctl enable docker # 設置自啟動3. 確保從cgroups均在同一個從groupfs
#cgroups是control groups的簡稱,它為Linux內核提供了一種任務聚集和劃分的機制,通過一組參數集合將一些任務組織成一個或多個子系統。
#cgroups是實現IaaS虛擬化(kvm、lxc等),PaaS容器沙箱(Docker等)的資源管理控制部分的底層基礎。
#子系統是根據cgroup對任務的劃分功能將任務按照一種指定的屬性劃分成的一個組,主要用來實現資源的控制。
#在cgroup中,劃分成的任務組以層次結構的形式組織,多個子系統形成一個數據結構中類似多根樹的結構。cgroup包含了多個孤立的子系統,每一個子系統代表單一的資源
如果輸出是Cgroup Driver: cgroupfs,則不需要修改。如果不是groupfs,執行下列語句
cat << EOF > /etc/docker/daemon.json {"exec-opts": ["native.cgroupdriver=cgroupfs"] } EOF systemctl daemon-reload && systemctl restart docker4. 安裝kubeadm
kubeadm是集群部署工具
5. 關閉交換區
交換區類似于win上的虛擬內存,當內存不夠的時候,用磁盤代替內存。
在k8s中,如果使用了交換區,可能會造成一些預料之外的bug,所以我們選擇關閉它。
6. 配置網橋
直接將下面這段所有的,復制到bash里面執行即可
7. 最后一步,通過鏡像安裝k8s
cd /usr/local/k8s-install/kubernetes-1.14 docker load -i k8s-114-images.tar.gz # 加載k8s的本地化鏡像,就不用從遠程倉庫下載了 docker load -i flannel-dashboard.tar.gz # 提供集群可視化監控的儀表盤利用 Kubeadm 構建集群
1. master 主服務器配置
kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16--pod-network-cidr表示生成的新的pod的虛擬ip的范圍邊界
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/configadmin.conf 是關于集群的核心配置文件,打開之后看到大概是這樣的:
apiVersion: v1 clusters: - cluster:certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01EY3hNakF5TkRZMU5Wb1hEVE13TURjeE1EQXlORFkxTlZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSmRHCk5qK0YxUHN4YnVVVXJSZm9RSGpzRmtQcUExbGFibE9xOUlhT3JBd1VUNEdEcmgwNnRET1o1a3pvOG9iLzJodDYKMWZXRnJSNkh4L05VY3FBTFNPYnV5VmtVWXAyc1NqQ1RjemdHY0JXOHh4YVRMK2I0MFFVNkdFdnc0Syt1L29mWQpPck5DalpaZ0YzRFdWWHZXbHNDRXc3S1phY1pNMFU2cC96VEZPdUVpTjUxc2tETlFGU0RSODRTV0p6M2wyM2phCmFnZWhTWEZnNWhubGJqV0hQUUZOMUlDMW5KdWZldDZDOGpjR1JOZy9JMEN3SmViYzdnalRCbHpTdXhmaXZ3eFkKMEpyUGNMVDZnTG5ka2ZncWJVdTJ2ei83ZWE5UkdLRFp5S0VZZUt0N0EvV0MvOHpyaEkwUFMwakpVMUF1V2Q0LwplY2xIYk1DaXp2a1BCYU1Gb1NNQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFBWk1iQzdnMlpLWnJSRWpvQ3J6VDZlVkNRYXMKRXQ2dHN4YlBWTU01VVdMeHpCWDZvM3QxOFVweW9CcVJaZHh5dUdLU05xKyt2WmpWeGFRejVOMG1JZFpPRHdLUApidzRCNCsrK21meEx1TjJ5RXZtckxPQ2dyZVQxZ2QzUDVFM3FMVEoyNFBLUm1TTFE2ZlAzTzk2UnZEMC9MWFVrCmpkbWJEenhzTEtwMUF2NzdtTSs4S041cEIrTGhpblVkNDlCWVI5VTVSOEZSMEhKWkhVNTdVUGIvN1hCUjl1NWEKbFZHdkpuSDdDUmV0a2RZKy9TWjhSa00zM1NHVTV6TDFrcFJ3ZVVjRlVuTWplazVLbEk1ZkNrWEhNTEI4T2pLRwpjVTVwQkdGSGkrTml0VDFoZmk1V2hkUUxLWVY0Vy9qbDlPckFXWncyZUthczhzQkU0S0JObHM0dVFvZz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=server: https://10.0.0.131:6443name: kubernetes contexts: - context:cluster: kubernetesuser: kubernetes-adminname: kubernetes-admin@kubernetes current-context: kubernetes-admin@kubernetes kind: Config preferences: {} users: - name: kubernetes-adminuser:client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM4akNDQWRxZ0F3SUJBZ0lJT3cwYm9PankwQWt3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TURBM01USXdNalEyTlRWYUZ3MHlNVEEzTVRJd01qUTNNREZhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTBldElGSmhuQzJWNVBRSkEKK2FMSytZeGpmcEFkai9Ma1V3WmtTTzIyQU9CY240TXBTTk9oNS8wWVZQazNNcEpGQUpoa0lxci9zdXlLM0NsdApJak5MR05BRkJXcXBxYk80YnNYZ1I5TTVvRytQQVBiWVpLemZrYnM0Y09hSGJ0bFordUUxQTN5Tm5vdTIyWGhaClRCTGF5akNmNnpDNGMzd3E1ZkpHbmRyb1BtSmtDcmszY1dCTnh4OWJkTTBoYXJ2UVhySU9oRWYxV3ZhMlpVeWIKTzEwN3VvZDQrRGxScGV6L015QlhIcDQzeUlCSWJ3L0VlcDNEVjBpQ3dQS2x1WjVGYzhXY1ZVMHRyVDRzZDM5NQpZVkMweVl0Rm5vLzdkNmhsNlJ0QU5UaHhWczlGeU5abTlnNWJUUUxSRjQvUno5d3I3Y3JiS2lOeUMwZkhsWGZLCkgwQ2xvUUlEQVFBQm95Y3dKVEFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFHM1ljcmNrRDh1ZDRuVHNIOERtelZia2xjZGVzZXcrMkpOWQpINUJuNGFZWDIyTng4L2xpSVl3d1M3QkJML3dxYVhtNE1KNjJFL0liNVFDeDRCSWxJOGhSYU5LVlpiblJnS29SCmZJNy9EWmFVdHRsaFI5WlBpcUhlL29tRW54aU9CNWVnTTc3MXU4d01zM0laVXcveWE3K1hIQlMwa0xhb3dpbnUKWG4rWkxBYytHaUd5K3N4VUVBbS9iUVUxSDJYU0xSY3NJbHI5MXdvNXVpS2JHOUgvUStiVVczUmVtTG40bDFjOApGSE1CUjBkbDBwaHphbjhNS3Jtd0RKdkROd1dIOElVNWtJQTZxaGY4N3NGeDFpRXBWTzQ4clJqa052THlsQ2RHCnloTk5pWkZPQkhmbVlyZVRGWG53STFNOWI4MHZHWHV4YWNYc2Z4RWl4MWJpaHVFL3JPQT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMGV0SUZKaG5DMlY1UFFKQSthTEsrWXhqZnBBZGovTGtVd1prU08yMkFPQmNuNE1wClNOT2g1LzBZVlBrM01wSkZBSmhrSXFyL3N1eUszQ2x0SWpOTEdOQUZCV3FwcWJPNGJzWGdSOU01b0crUEFQYlkKWkt6ZmticzRjT2FIYnRsWit1RTFBM3lObm91MjJYaFpUQkxheWpDZjZ6QzRjM3dxNWZKR25kcm9QbUprQ3JrMwpjV0JOeHg5YmRNMGhhcnZRWHJJT2hFZjFXdmEyWlV5Yk8xMDd1b2Q0K0RsUnBlei9NeUJYSHA0M3lJQklidy9FCmVwM0RWMGlDd1BLbHVaNUZjOFdjVlUwdHJUNHNkMzk1WVZDMHlZdEZuby83ZDZobDZSdEFOVGh4VnM5RnlOWm0KOWc1YlRRTFJGNC9Sejl3cjdjcmJLaU55QzBmSGxYZktIMENsb1FJREFRQUJBb0lCQUI3cWUrOHNrdUNHelZoQwo0TGJqVnVseDE2Vm9MREpySDExcTc1SWVFRlFJdHh0M0FibU1FYWhOQ2l4Wmw5dUcxMHJESnR4RU91eHJFZmhpCjBZUGI4Zzl4YzR2Y3JhZ2tvK0VNbTM5NGlHQXNqZThpYTdSSUVaVXc4WnNQR0pzbXY2M0hSVHVDT0lsRkltVGMKNktuZmpRR0NMOHMvbmFyRWVyenE5YU9CL2ZwUjF0SEtXcnA5ZktTenNYLytkb28rdkw3UVAzZy85Y1RuRFlqVgpiTTlkWmcwaFd1Ny92Uit3cjk5QVhkQXhrY0VUN0ZBR0RaU0ZrTFBYVGM5ZjVYK2xkTGZZemxUd3Q1aU42UUg2CmR0bmtaSmNRdmtYK0hBcGxOZGluZWhXM3ppWklIZXhnZ0twSVhDTTd5bUg2bWkwUFhtblQrVVFDMXVKVVVvcjgKbVowQVJBRUNnWUVBMWdXdXExbDVmaDlYVUd0WkpwWktQZ0JseW1INlJnMUFScFdnbU43Q3g3cDRwNk5HU2s5cgpaRUVHYXB5QlNEVkwzNndwaWgxRENxL1hnZyswdHlHRndwMVJsL21MYXlES3hPb3Y2VEx3OGJ2enhIbmZ6QnZ5CjZkTDBQdmdUMnlEMGtCWno4WGZIanlmV0JSUnN5UkVMTjFiMVhnZkJvTzFienNkV1NUTzVnL0VDZ1lFQSt4ZVQKZjQxVytTOTIwd2RWQ2pIRlRod3RIdUhydFZQelJOalN5NWpwUGU2c3JrL2tZbnh3YmhJSFZGdUREUCtXRlVTeApkUzFzWi95aUZGcTdUMEdOYWpDWFNiSS9RS2lHZGFwSnRNWC81Ujk4YWwzM3ZrQXlxcmV5Qk5CMFh4ZmdVOExECnQ3b1YweWgzT3dzc2VPVEJsZ2VMNG84RWZEWllEbmRlenhFL0xMRUNnWUVBcFRrcHlUcC80bkFMbGhmcGNUS2gKQ2hDQWhLYnk4VldWZzJoTDNQaEw0cWtBTUZxS0R5QVV4Z2ExRDJUWElZbVRrNDl6V2g2US9SVVhDRjlib2UwTgpPRnIrL0pZM25YSnBWMjk3b1Vva1hGby9MRFR5SXI2STN4NXVWSlpycmNWWlNFc3RJd0xYV3Bya1RIT2lMKzhxCmU0UjBWQzBrdkRuQm9IYWZGRkFNTGVFQ2dZRUEza2JncStuVE5JUndEQ0JSaDlUSGRYNDc4enJNRHBsaW9XL1EKSzZ3UnptR2JQRFE5V1hJUGxXRWdXKzBtOWpyTUFjZnQwRzJGcWdoYTh1bmZKeXBBcGVDZURQOWVQejd3eVBrVwpocEZCRnZQb2o4RGZyK3ZrN252dmU1T05jU0VSMVJSMWJnK3RnbUF3TEhTWHllMjM4Ymg4ZlBOZVpSYzJuSmZQCnRqN3VUZ0VDZ1lBWU5PWHJWVmFROGlES3M5MmRRalBTZEhSeERFcDI4RFVRL1NZd2VlazhQbWRSRWR5M2NyTUsKTkEycEVNSDNhU05oYXE4T3Q3MndtV0oydXJ1OTNaT05CMDVDSXA0MjExZ1NoY0NQQys0QUo3OThKcWVUVXgxYwp4a3RIajJjR3FEOGIyK0NqRnErZWtVendEYUdkeUNsdVZIZEdLMG1sZTRQQVU3R25IVzhPeWc9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=查看存在問題的pod
kubectl get nodes設置全局變量
kubectl get pod --all-namespaces安裝flannel網絡組件,是用來pod之間進行通信的協議
kubectl create -f kube-flannel.yml2. 加入NODE節點
在另外兩臺node上運行master上面生成的這句:
再查看,查看就能看到兩個節點了
kubectl get nodes
如果忘記這句,
在 master 上執行kubeadm token list 查看 ,在兩個node上運行
然后,我們就可以自動的安裝容器、發布應用了
3. Master 開啟儀表盤
讀取配置文件,并按照配置文件的策略,對資源進行配置。
訪問圖形界面的ip是http://10.0.0.131:32000,并不是下圖中的10.108.99.147,有待研究…
重啟服務器之后,k8s 服務該怎么恢復呢?
總結
以上是生活随笔為你收集整理的kubernetes入门到精通(一):内容编排与k8s介绍,集群构建教程,如何开启dashboard的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 101. 对称二叉树
- 下一篇: kubernetes入门到精通(二):k