CentOS一鍵安裝K8s cluster

直接運行腳本叹螟,一步完成配置。需要至少2臺Centos7.4+静盅,1個master-node蒿叠,1-N個worker-node.

配置master節(jié)點

#!/bin/bash

# user could change hostname
export hostname=master-node

# k8s version used
export kube_version=1.17.0

# update yum 
sudo yum update

# add kubenetes repository
sudo bash -c 'cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF'

# install docker
if ! [ -x "$(command -v docker)" ]; then
  echo "Docker installing ..."
  sudo yum install docker
  sudo systemctl enable docker.service
  sudo systemctl start docker
else
  echo "docker has already been installed"
fi

# set user into docker group, need logout to take effect
#sudo usermod -aG docker tas

# install kubeadm kubelet kubectl
sudo yum install -y kubelet-$kube_version  kubeadm-$kube_version kubectl-$kube_version
sudo systemctl enable kubelet
sudo systemctl start kubelet

#turn off swap
sudo swapoff -a

# set hostname and add line to hosts file
sudo hostnamectl set-hostname $hostname
sudo sed -i "1i127.0.0.1       ${hostname}" /etc/hosts

#Update Iptables Settings
sudo bash -c 'cat  <<EOF >> /etc/sysctl.d/99-sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF'
sudo sysctl --system

# Configure Firewall
firewall_status=$(sudo firewall-cmd --state)
if [ $firewall_status == "running" ]; then
  sudo firewall-cmd --permanent --add-port=6443/tcp
  sudo firewall-cmd --permanent --add-port=2379-2380/tcp
  sudo firewall-cmd --permanent --add-port=10250/tcp
  sudo firewall-cmd --permanent --add-port=10251/tcp
  sudo firewall-cmd --permanent --add-port=10252/tcp
  sudo firewall-cmd --permanent --add-port=10255/tcp
  sudo firewall-cmd --permanent --add-port=8472/udp
  sudo firewall-cmd --add-masquerade --permanent
  sudo firewall-cmd --permanent --add-port=53/tcp
  sudo firewall-cmd --permanent --add-port=30000-32767/tcp
  sudo firewall-cmd --reload
fi

#Disable firewalld for the time being(some issues with firewall)
#sudo systemctl stop firewalld

#Disable SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

# For master-node
sudo kubeadm init --pod-network-cidr=10.244.0.0/16

mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#export KUBECONFIG=/etc/kubernetes/kubelet.conf

#Deploy Pod Network to Cluster
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

執(zhí)行上面的腳本魂务,從返回消息中找到如下信息粘姜,將在配置worker節(jié)點的腳本中使用:

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

kubeadm join 10.97.170.98:6443 --token fwhlz2.r0en0tkopmsjinit \
    --discovery-token-ca-cert-hash sha256:9844a8db82627a49838966d025d2d6b88f1ad7baabafe69d4f98d9979653a155 

配置worker節(jié)點

  1. 自定義第四行hostname孤紧,如worker1, worker2
  2. 修改最后一行臭猜,用上一步中的返回信息替換蔑歌,然后執(zhí)行腳本

# user could change hostname
export hostname=worker-node1

# k8s version used
export kube_version=1.17.0

# update yum 
sudo yum update

# add kubenetes repository
sudo bash -c 'cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF'

# install docker
if ! [ -x "$(command -v docker)" ]; then
  echo "Docker installing ..."
  sudo yum install docker
  sudo systemctl enable docker.service
  sudo systemctl start docker
else
  echo "docker has already been installed"
fi

# set user into docker group, need logout to take effect
#sudo usermod -aG docker tas

# install kubeadm kubelet kubectl
sudo yum install -y kubelet-$kube_version  kubeadm-$kube_version kubectl-$kube_version
sudo systemctl enable kubelet
sudo systemctl start kubelet

#turn off swap
sudo swapoff -a

# set hostname and add line to hosts file
sudo hostnamectl set-hostname $hostname
sudo sed -i "1i127.0.0.1       ${hostname}" /etc/hosts

#Update Iptables Settings
sudo bash -c 'cat  <<EOF >> /etc/sysctl.d/99-sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF'
sudo sysctl --system

# Configure Firewall
firewall_status=$(sudo firewall-cmd --state)
if [ $firewall_status == "running" ]; then
  sudo firewall-cmd --permanent --add-port=6443/tcp
  sudo firewall-cmd --permanent --add-port=2379-2380/tcp
  sudo firewall-cmd --permanent --add-port=10250/tcp
  sudo firewall-cmd --permanent --add-port=10251/tcp
  sudo firewall-cmd --permanent --add-port=10252/tcp
  sudo firewall-cmd --permanent --add-port=10255/tcp
  sudo firewall-cmd --permanent --add-port=8472/udp
  sudo firewall-cmd --permanent --add-port=30000-32767/tcp
  sudo firewall-cmd --add-masquerade --permanent
  sudo firewall-cmd --permanent --add-port=53/tcp
  sudo firewall-cmd --reload
fi
#disable firewall for the time being(some issues)
#sudo systemctl stop firewalld

# copy the output from master node kubeadm init
kubeadm join 10.97.170.98:6443 --token fwhlz2.r0en0tkopmsjinit  --discovery-token-ca-cert-hash sha256:9844a8db82627a49838966d025d2d6b88f1ad7baabafe69d4f98d9979653a155 

卸載環(huán)境

#!/bin/bash

echo "reset kubeadm"
sudo kubeadm reset

while true; do
    echo "Do you want to uninstall kubernetes software?"
    read -p "(y/n) " yn
    case $yn in
        [Yy]* ) uninstall_kube=yes; break;;
        [Nn]* ) break;;
        * ) echo "Please answer yes or no.";;
    esac
done

if [ "$uninstall_kube" = "yes" ]; then
    echo "##########################################################################"
    echo "uninstall k8s components"
    echo "##########################################################################"
    sudo yum autoremove kubeadm kubectl kubelet kubernetes-cni
    sudo rm -rf ~/.kube
fi

while true; do
    echo "Do you want to uninstall docker?"
    read -p "(y/n) " yn
    case $yn in
        [Yy]* ) uninstall_docker=yes; break;;
        [Nn]* ) break;;
        * ) echo "Please answer yes or no.";;
    esac
done

if [ "$uninstall_docker" = "yes" ]; then
    echo "##########################################################################"
    echo "uninstall k8s components"
    echo "##########################################################################"
    sudo yum autoremove docker-engine docker docker.io docker-ce
    sudo rm -rf /var/lib/docker /etc/docker
    sudo groupdel docker
    sudo rm -rf /var/run/docker.sock
fi
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市累颂,隨后出現(xiàn)的幾起案子凛俱,更是在濱河造成了極大的恐慌蒲犬,老刑警劉巖原叮,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奋隶,死亡現(xiàn)場離奇詭異唯欣,居然都是意外死亡搬味,警方通過查閱死者的電腦和手機(jī)碰纬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門寿桨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亭螟,“玉大人骑歹,你說我怎么就攤上這事陵刹。” “怎么了也糊?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵掐隐,是天一觀的道長虑省。 經(jīng)常有香客問我探颈,道長伪节,這世上最難降的妖魔是什么绩鸣? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任化借,我火速辦了婚禮屏鳍,結(jié)果婚禮上局服,老公的妹妹穿的比我還像新娘淫奔。我一直安慰自己唆迁,他們只是感情好唐责,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布熟菲。 她就那樣靜靜地躺著抄罕,像睡著了一般呆贿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冒晰,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼秫逝。 笑死违帆,一個胖子當(dāng)著我的面吹牛刷后,可吹牛的內(nèi)容都是我干的尝胆。 我是一名探鬼主播含衔,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼杭隙!你這毒婦竟也來了票髓?” 一聲冷哼從身側(cè)響起信殊,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跷车,沒想到半個月后朽缴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體密强,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了池磁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖跛梗,靈堂內(nèi)的尸體忽然破棺而出核偿,到底是詐尸還是另有隱情漾岳,我是刑警寧澤尼荆,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布液样,位于F島的核電站鞭莽,受9級特大地震影響澎怒,放射性物質(zhì)發(fā)生泄漏喷面。R本人自食惡果不足惜惧辈,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一算撮、第九天 我趴在偏房一處隱蔽的房頂上張望肮柜。 院中可真熱鬧审洞,春花似錦仰剿、人聲如沸南吮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽劳较。三九已至兴想,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毙替,已是汗流浹背践樱。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人欲虚。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像悔雹,于是被迫代替她去往敵國和親复哆。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354