虛擬機 centos搭建k8s單集羣記錄

準備工作

參考:
https://juejin.im/post/5d7fb46d5188253264365dcf

兩臺虛擬機 centos7.8版本

虛擬機初始化

  1. 無法連接網絡問題 修改下面的文件 boot將no改成yes

/etc/sysconfig/network-scripts/ifcfg-ens33

  1. 安裝網絡相關命令
yum install net-tools
  1. 虛擬機設置靜態ip,同時可以訪問網絡 https://blog.csdn.net/weiyongle1996/article/details/75050738

安裝步驟

  1. 修改host文件

vim /etc/hostname

一臺叫:tom

一臺叫:jack

vim /etc/hosts

192.168.233.132 tom

192.168.233.1 jack

修改後兩臺的配置

#tom
[root@tom ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.233.132 tom
192.168.233.1  jack
[root@tom ~]# cat /etc/hostname
tom


#jack
[root@jack ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.233.132 tom
192.168.233.1  jack
[root@jack ~]# cat /etc/hostname
jack
  1. 配置防火牆
[root@tom ~]# systemctl stop firewalld
[root@tom ~]# systemctl disable firewalld

\3. 禁用SELinux

image.png

vi /etc/selinux/config
#設置SELINUX=disabled. 重啓機器
#查看狀態
[root@tom ~]# sestatus
SELinux status:                 disabled
  1. 禁用交換分區
swapoff -a  # 臨時
  1. 同步時間
yum install ntpdate -y
 ntpdate  ntp.api.bz
  1. 安裝docker

參考:https://www.runoob.com/docker/centos-docker-install.html

設置倉庫,在新主機上首次安裝 Docker Engine-Community 之前,需要設置 Docker 倉庫。之後,可以從倉庫安裝和更新 Docker。

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

設置國內源地址

阿里雲源地址

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

列出可安裝得版本

yum list docker-ce --showduplicates | sort -r

安裝指定版本

yum install docker-ce-18.09.9-3.el7 docker-ce-cli-18.09.9-3.el7 containerd.io

啓動docker

systemctl enable docker
systemctl start docker

安裝kubernetes

添加源

由於國內網絡原因, 官方文檔中的地址不可用, 替換爲阿里雲鏡像地址, 執行以下代碼即可

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

安裝

   36  yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
   37  systemctl enable kubelet && systemctl start kubelet

修改網絡配置

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

以上所有操作在worker 和master 節點上都需要執行

初始化master

生成初始化文件

kubeadm config print init-defaults > kubeadm-init.yaml

該文件有兩處需要修改:

  • advertiseAddress: 1.2.3.4修改爲本機地址
  • imageRepository: k8s.gcr.io修改爲imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers

下載鏡像

 kubeadm config images pull --config kubeadm-init.yaml

執行初始化

 kubeadm init --config kubeadm-init.yaml

執行完畢後會輸出:

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.233.132:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:ae867e99b70f13173649a21cedc0a6cd2609186e263a51bd7dbee10e8cbdf9d3 

最後兩行保存下來是worker節點加入所需要執行的命令.

接下來配置環境, 讓當前用戶可以執行kubectl命令:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

測試一下: 此處的NotReady是因爲網絡還沒配置.

[root@tom ~]# kubectl get node
NAME   STATUS     ROLES    AGE   VERSION
tom    NotReady   master   92s   v1.18.4

配置網絡

安裝wget -y表示所有問題都設置yes

yum -y install wget

下載描述文件

[root@tom ~]# wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
[root@tom ~]#  cat kubeadm-init.yaml | grep serviceSubnet:
  serviceSubnet: 10.96.0.0/12

vi calico.yaml, 將192.168.0.0/16修改爲10.96.0.0/12

需要注意的是, calico.yaml中的IP和kubeadm-init.yaml需要保持一致, 要麼初始化前修改kubeadm-init.yaml, 要麼初始化後修改calico.yaml.

執行

kubectl apply -f calico.yaml

初始化網絡.

此時查看node信息, master的狀態已經是Ready了.

等個兩三分鐘才變化

[root@tom ~]# kubectl get node
NAME   STATUS   ROLES    AGE     VERSION
tom    Ready    master   9m40s   v1.18.4
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章