使用rke搭建k8s集羣

計劃三臺機器用rke安裝k8s,rke安裝之前先配好一臺的環境,然後克隆。
版本信息:

軟件 版本
os CentOS Linux release 7.5.1804
docker 18.06.2-ce
rke v0.2.4(默認k8s版本:v1.13.5-rancher1-3)
kubectl v1.15.0

一、裝機,配靜態ip,裝常用軟件

用vmware最小化安裝centos7後,修改主機名和hosts文件。

vi /etc/hostname
vi /etc/hosts

配置靜態ip

進入vmware,菜單欄選擇“編輯-虛擬網絡編輯器”,在最上邊選擇nat那個網卡,取消勾選最下邊的“使用本地dhcp服務……”,點擊中間的“nat設置”,記住ip、子網掩碼,網關。

然後本地的windows網絡設置,適配器設置裏找到vmware的對應的nat那個網卡,在ipv4設置裏改成靜態獲取,填上邊記住的內容。

進入虛擬機,vi /etc/sysconfig/network-scripts/ifcfg-ens33,需要修改的:

BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.xxx.xxx
NETMASK=255.255.255.0
GATEWAY=192.168.xxx.x
DNS1=8.8.8.8
DNS2=114.114.114.114

重啓:service network restart或者systemctl restart network

安裝常用軟件

yum install -y lrzsz
yum install -y net-tools
yum install -y wget
yum install -y vim-enhanced
yum install -y bash-completion
yum install -y git
yum install -y telnet
yum install -y telnet-server

二、安裝docker

環境配置

  1. 禁用selinux:修改配置文件/etc/sysconfig/selinux,設置SELINUX=disabled
  2. 禁用交換分區:修改/etc/fstab,註釋掉swap項。
  3. 關閉防火牆:systemctl disable firewalld && systemctl stop firewalld && systemctl status firewalld

重啓一波。

刪除舊版本殘留

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

刪除殘留鏡像、容器、卷文件:

rm –rf /var/lib/docker/

rpm方式安裝docker

官網提供多種方式安裝:https://docs.docker.com/install/linux/docker-ce/centos/
本文采用方式是官網下載rpm包:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
傳到虛擬機,虛擬機裏安裝:

cd到rpm包所在目錄,
yum install -y ./docker-ce-18.06.2.ce-3.el7.x86_64.rpm

修改docker配置

mkdir /etc/docker
vi /etc/docker/daemon.json
添加:
{
    "registry-mirrors": [
        "https://registry.docker-cn.com"
    ],
    "dns":[
        "114.114.114.114",
        "8.8.8.8",
        "8.8.4.4"
    ]
}

然後使之生效:systemctl daemon-reload
設置開機自啓:systemctl enable docker
啓動:systemctl start docker
測試:docker run hello-world

三、rke安裝k8s

安裝前修改配置

此處默認安裝docker前的配置修改已經完成。

  1. rke安裝需要新建用戶並添加到docker組:

    useradd xxx
    passwd xxx
    usermod -aG docker xxx
    

    順便添加一下sudo權限:

    vi /etc/sudoers
    找到這一行:"root ALL=(ALL) ALL",
    在下面添加"xxx ALL=(ALL) ALL"(這裏的xxx是你的用戶名)
    
  2. 啓動ipv4轉發:CentOS7下可編輯配置文件/etc/sysctl.conf,添加:

    net.ipv4.ip_forward = 1              
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    

    執行sudo sysctl -p 立刻生效。

虛擬機克隆

關機,打個快照,然後用vmware的克隆功能克隆出2個。修改靜態ip、主機名和hosts文件。關機打快照。

ssh配置

接下來切換到前邊自己建的普通用戶:su - xxx
在打算安裝rke的那臺機器執行:

 ssh-keygen  #三次回車

然後發送公鑰給另兩臺機器以及自己本身:

ssh-copy-id 用戶名@機器IP #輸入yes和密碼

測試免密:

ssh 用戶名@機器IP

rke安裝

下載地址:https://github.com/rancher/rke/releases/tag/v0.2.4
傳到ssh免密的那一臺虛擬機,改個名,賦個執行權限:

mv rke_linux-amd64 rke-v0.2.4
chmod +x rke-v0.2.4

同目錄下創建cluster.yml文件:

nodes:
  - address: 192.168.178.xxx
    user: 前邊自己建的用戶
    role: [controlplane,etcd]
  - address: 192.168.178.xxx
    user: 前邊自己建的用戶
    role: [etcd,worker]
  - address: 192.168.178.xxx
    user: 前邊自己建的用戶
    role: [etcd,worker]

開始安裝(是個冪等操作):

./rke-v0.2.4 up --config cluster.yml

完成後當前目錄會生成kube_config_cluster.yml文件和cluster.rkestate文件。

安裝kubectl

下載最新版(當前是v1.15.0):

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

也可下載指定版本,詳見官網:https://kubernetes.io/docs/tasks/tools/install-kubectl/

傳到一臺機器上,賦予執行權限,放到bin目錄:

chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

rke安裝後,會在當前目錄生成k8s集羣配置文件kube_config_cluster.yml,拷貝這個文件並重命名爲~/.kube/config。然後測試使用:

kubectl get node

四、其它後續

helm安裝

版本:

軟件 版本
helm v2.14.1
tiller v2.14.1+unreleased

官網下載:https://github.com/helm/helm/releases

sudo tar -xzvf helm-v2.14.1-linux-amd64.tar.gz
cd linux-amd64/
sudo cp helm /usr/local/bin/
helm init

這裏init需要翻牆下載tiller鏡像,不然會失敗,不翻牆可以這樣做:

kubectl get pod -n kube-system 
#找到tiller並且describe一下,記住下載失敗的tiller鏡像版本
#比如叫gcr.io/kubernetes-helm/tiller:v2.14.1
#到docker hub按最近更新搜tiller,找對應版本
helm init --tiller-image=jessestuart/tiller:v2.14.1 --upgrade

如果集羣啓用rbac,helm ls命令會失敗,還需要做:

# 在kube-system命名空間中創建tiller賬戶
kubectl create serviceaccount --namespace kube-system tiller
# 創建角色並授予cluster-admin權限
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
# 指定賬戶進行初始化,別忘了還要指定tiller鏡像哦
helm init --service-account tiller --tiller-image=jessestuart/tiller:v2.14.1 --upgrade
# 等待pod重啓後驗證
helm ls

kubectl和helm命令補全

yum install -y bash-completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source <(helm completion bash)
echo "source <(helm completion bash)" >> ~/.bashrc
source /usr/share/bash-completion/bash_completion
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章