日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kubernetes入门到精通(一):内容编排与k8s介绍,集群构建教程,如何开启dashboard

發布時間:2024/2/28 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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/Shanghai

2、設置 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 firewalld

4、安裝kubeadm快速部署工具

1. 將鏡像包k8s-install上傳至服務器每個節點,可以使用scp命令拷貝到另外兩臺機器上
我們通過離線安裝的方式

mkdir /usr/local/k8s-install cd /usr/local/k8s-install

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包含了多個孤立的子系統,每一個子系統代表單一的資源

docker info | grep cgroup

如果輸出是Cgroup Driver: cgroupfs,則不需要修改。如果不是groupfs,執行下列語句

cat << EOF > /etc/docker/daemon.json {"exec-opts": ["native.cgroupdriver=cgroupfs"] } EOF systemctl daemon-reload && systemctl restart docker

4. 安裝kubeadm
kubeadm是集群部署工具

cd /usr/local/k8s-install/kubernetes-1.14 tar -zxvf kube114-rpm.tar.gz cd kube114-rpm yum localinstall -y *.rpm

5. 關閉交換區
交換區類似于win上的虛擬內存,當內存不夠的時候,用磁盤代替內存。
在k8s中,如果使用了交換區,可能會造成一些預料之外的bug,所以我們選擇關閉它。

swapoff -a # 關閉交換區 vi /etc/fstab # 將 swap一行注釋掉,然后保存,這樣交換區就被永久的關閉了

6. 配置網橋
直接將下面這段所有的,復制到bash里面執行即可

cat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system

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/config

admin.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.yml

2. 加入NODE節點
在另外兩臺node上運行master上面生成的這句:

kubeadm join 10.0.0.131:6443 --token hcwqf2.8ybdi9a7zsetfgim \--discovery-token-ca-cert-hash sha256:744ab2e31d23cb337a31a561b8a8c33da51914266081628555869f16345f02ea

再查看,查看就能看到兩個節點了

kubectl get nodes


如果忘記這句,
在 master 上執行kubeadm token list 查看 ,在兩個node上運行

kubeadm join 192.168.163.132:6443 --token aoeout.9k0ybvrfy09q1jf6 --discovery-token-unsafe-skip-ca-verification

然后,我們就可以自動的安裝容器、發布應用了

3. Master 開啟儀表盤
讀取配置文件,并按照配置文件的策略,對資源進行配置。

kubectl apply -f kubernetes-dashboard.yaml kubectl apply -f admin-role.yaml # 設置webui的角色 kubectl apply -f kubernetes-dashboard-admin.rbac.yaml # 控制角色的訪問權限 kubectl -n kube-system get svc # 獲取系統命名空間下的服務 http://10.0.0.131:32000訪問

訪問圖形界面的ip是http://10.0.0.131:32000,并不是下圖中的10.108.99.147,有待研究…


重啟服務器之后,k8s 服務該怎么恢復呢?


總結

以上是生活随笔為你收集整理的kubernetes入门到精通(一):内容编排与k8s介绍,集群构建教程,如何开启dashboard的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。