Kubernetes踩坑記---單點集羣安裝

   

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

  從今天起,咱們開始研究k8s ,之因此叫k8s,是由於Kubernetes這個單詞的K和S之間還有8個字母,爲了方便書寫,就直接用8來代替.國外也會偷懶,這就是證據哈哈,固然這是國際慣例前端

Kubernetes能夠幹嗎?如下就是他能作的事情,若是你是運維還不開始學習,不久的未來就完全失業了:
python

  • 自動化容器的部署和複製docker

  • 隨時擴展或收縮容器規模vim

  • 將容器組織成組,而且提供容器間的負載均衡centos

  • 很容易地升級應用程序容器的新版本api

  • 提供容器彈性,若是容器失效就替換它,等等.緩存

實際上,使用Kubernetes只需一個部署文件,使用一條命令就能夠部署多層容器(前端,後臺等)的完整集羣:
安全

$ kubectl create -f single-config-file.yaml

接下來咱們一塊兒搭建單點集羣:
網絡

  實驗環境:
負載均衡

坑一:

若是你是新手,建議使用全新的安裝環境,從網絡到yum源都是剛剛配置好的,這樣不容易出錯,要否則,稍有不慎就會一堆報錯,而你百度也百度不出來結果

第一步: 把/etc/yum.repos.d/ 文件夾下全部的文件移動到/usr/local/benfei/  文件夾下.  由於我是用的虛擬機,在操做的時候,我直接把文件刪除了(這個在生產環境下是不容許的,切記)

1  df -h 
2  umount /dev/sr0      //這裏是卸載開機自動掛載的光驅
3  cd /etc/yum.repos.d/
4  ls
5  rm -rf ./*

第二步:  設置網絡yum源,而後進行更新,設置緩存

  

7.wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
8  ls
9  yum update
10  yum makecache

第三步: 關閉防火牆,centos7默認使用firewall爲防火牆,而Kubernatesd Master與工做Node之間會有大量的網絡通訊,安全的作法是在防火牆上配置各類須要相互通信的端口號,在一個安全的內部網絡環境中能夠關閉防火牆服務

 

11  systemctl disable firewalld.service
12  systemctl stop firewalld.service

第四步: 安裝etcd和kubernetes軟件,在安裝的時候docker就順帶安裝了.

13  yum install -y etcd kubernetes

第五步:配置修改

14  vim /etc/sysconfig/docker

將配置文件裏OPTIONS 修改爲以下圖所示的內容

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

15  vim /etc/kubernetes/apiserver

此處將配置文件中的框起來的地方的ServiceAccount去掉

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 若是不去掉是會報錯的

第六步: 按照以下步驟啓動全部服務,若是啓動成功,不會有任何提示.

 

    16  systemctl start etcd
   17  systemctl start docker
   18  systemctl start kube-apiserver.service
   19  systemctl start kube-controller-manager.service
   20  systemctl start kube-scheduler.service
   21  systemctl start kubelet.service
   22  systemctl start kube-proxy.service

如今一個單機版的K8S集羣環境就安裝成功了,接下來咱們就能夠在這個單機版的集羣中愉快的玩耍了.

[root@localhost yum.repos.d]# kubectl get svc
NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   10.254.0.1   <none>        443/TCP   1h

能夠看到,K8s服務已經跑起來了.
在這裏簡單介紹下YAML配置文件,咱們在下一個篇章裏會用到

YAML讀做/ˈjæməl/,他的本質就是一種通用的數據串行化格式.自己不須要安裝,咱們在學python時候也會常常用到.

基本語法以下:

  1. 對大小寫比較敏感

  2. 使用縮進表示層級關係

使用YAML用於k8s的定義有不少好處,以下:

  • 便捷性:你將再也不須要添加大量的參數到命令行中執行命令

  • 可維護性:YAML文件能夠經過源頭控制,能夠跟蹤每次的操做

  • 靈活性:經過YAML你將能夠建立比命令行更加複雜的結構

YAML的結構類型,只要知道兩種就能夠: Lists和Maps

在K8S這裏只要用如下幾個用法就能夠了

對象是一組鍵值對,使用冒號來結構來表示

apiVersion: v1

kind: ReplicationController

這裏定義了一個RC 

所謂的RC就是保證在同一時間可以運行指定數量的Pod副本

你能夠理解爲Pod就是用來包裹容器的,在k8s中咱們不會直接操做容器,而是把容器包裝成Pod在進行管理.Pod是k8s裏面最基本的操做單元.

說多了,這裏理解寫法就能夠了,A: B的格式

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相關文章
相關標籤/搜索