Kubernetes 集羣搭建(上)

不知道各位對Kubernetes瞭解多少呢?如果還是有一些瞭解,建議你讀一下這篇文章,或許對你有些許幫助 !

閱讀本文您需要具備一下知識點:

  • 1.Kubernetes
  • 2.kubeadm
  • 3.docker

以上三點如過各位看官都知曉,那麼請盡情食用,若不太瞭解請各位看官自行百度,不再多做說明,小編能力有限,文章若有錯漏之處請各位大佬輕噴,感激不敬~~~

由於GFW這篇文章寫的過程有點小坎坷,不過問題不大,如果有興趣,你可以跟着文章操作一下,或許你會發現新大陸,當然,你這一路比我寫文章之前會好很多,因爲我已經替你蕩平這個大坑了,廢話不多說,開始正文~

一、準備工作

搭建集羣最好方便的就是購買幾個雲服務器,搭建起來很舒服,當然這是資金允許的情況下!沒足夠的money的話就和我一樣搭個虛擬機玩吧~~

由於是虛擬機,電腦性能一般般,我這裏搭建是單節點,各位看官請知悉哈~~~

基礎環境

以下是我此次實驗的環境需求

  • 2核2G服務器
  • 20g磁盤
  • centos7
  • 服務器之間內網互通
  • 可以科學上網

這裏多說一句,之前部署這個東西,我的服務器是可以科學上網的,部署過程簡直不要太流暢,不過爲了寫給大家看,特意寫了國內環境通用的文章,過程比較艱辛~~~

二 、開始部署

爲了方便起見,以下操作都是在root用戶下執行

1. 配yum源

我這裏使用的的是阿里雲的yum源 在配置yum源之前把以前的做個備份

root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
總用量 32
-rw-r--r--. 1 root root 1664 9月   5 21:05 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 9月   5 21:05 CentOS-CR.repo
-rw-r--r--. 1 root root  649 9月   5 21:05 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 9月   5 21:05 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 9月   5 21:05 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 9月   5 21:05 CentOS-Sources.repo
-rw-r--r--. 1 root root 6639 9月   5 21:05 CentOS-Vault.repo
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv * bak
mv: 無法將目錄"bak" 移動至自身的子目錄"bak/bak" 下
[root@localhost yum.repos.d]# ll
總用量 0
drwxr-xr-x. 2 root root 187 1月  10 11:17 bak

配置yum源

[root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0  23632      0 --:--:-- --:--:-- --:--:-- 23801

配置kubernetes源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

配置docker源

[root@localhost yum.repos.d]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost yum.repos.d]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

生成緩存

[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache

關閉swap分區

理由如下:

kubernetes是將實例緊密包裝到儘可能接近100%。 所有的部署應該與CPU /內存限制固定在一起。 所以如果調度程序發送一個pod到一臺機器,它不應該使用交換。 設計者不想交換,因爲它會減慢速度。所以關閉swap主要是爲了性能考慮。

[root@localhost yum.repos.d]# swapoff -a

[root@localhost yum.repos.d]# vim /etc/fstab  #懶得寫sed 就這樣看看吧~
註釋掉這一行:/dev/mapper/centos-swap swap

寫kubernetes配置

[root@localhost yum.repos.d]#  vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1    
vm.swappiness=0

加載配置

sysctl --system

關閉seliunx和防火牆

[root@localhost yum.repos.d]#  setenforce 0
[root@localhost yum.repos.d]#  systemctl disable firewalld
[root@localhost yum.repos.d]#  systemctl stop firewalld
[root@localhost yum.repos.d]#  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

開啓路由轉發

[root@localhost yum.repos.d]#  sysctl -w net.ipv4.ip_forward=1

# 默認情況下,由於安全原因,linux是關閉了路由轉發的,即同臺機器不止一個網卡,將數據包從一個網卡傳到另一個網卡,讓另一個網卡繼續路由,即實現兩個不同網段的主機通信。service 的 IP 是通過 proxy(即 kube-proxy 或 kube-router )路由的,並不需要路由器參與,node 收到數據包時,數據包的目的 IP 爲本機的內網 IP,proxy 將數據包的目的IP轉化成Service IP並路由轉發到Serive IP 對應網段的虛擬網卡上,最終路由到正確的Pod

基本的環境到這裏就配置結束了,今天的文章暫時到這裏,我們明天見~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章