搭建 k8s for 國內(nèi)鏡像源

1. CentOS 7 安裝 kubelet kubeadm kubectl

1.1 yum 源修改

// 備份本地yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 

// 獲取阿里yum源配置
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
// 或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

// 更新catch
yum clean all # 清除系統(tǒng)所有的yum緩存 
yum makecache # 生成yum緩存

// 查看
yum -y update 

// 調(diào)整時(shí)區(qū)為上海
timedatectl set-timezone Asia/Shanghai

1.2 阿里源安裝 kubelet kubeadm kubectl

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
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet

# yum install kubectl-1.21.3-0.x86_64  # 指定版本安裝

1.3 使橋接流量對iptables可見

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

1.4 關(guān)閉 swap

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
sudo swapoff -a

1.5 驗(yàn)證是否生效棕硫,均返回 1 即正確

sysctl -n net.bridge.bridge-nf-call-iptables
sysctl -n net.bridge.bridge-nf-call-ip6tables
echo "1" >/proc/sys/net/ipv4/ip_forward

1.6 關(guān)閉防火墻

sudo systemctl stop firewalld.service   #停止firewall
sudo systemctl disable firewalld.service #禁止firewall開機(jī)啟動
sudo firewall-cmd --state             #查看防火墻狀態(tài)

1.7 禁用SELINUX

sudo setenforce 0
sudo vi /etc/selinux/config
#SELINUX修改為disabled
SELINUX=disabled 

1.8 升級Linux kernel to 4.4

更新yum源
yum -y update

獲取源
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
 
安裝,裝完成后檢查 /boot/grub2/grub.cfg中對應(yīng)內(nèi)核menuentry中是否包含 initrd16 配置拭宁,如果沒有洋机,再安裝一次!
yum --enablerepo=elrepo-kernel install -y kernel-lt 
 
查看系統(tǒng)的全部內(nèi)核
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

0 : CentOS Linux (4.4.234-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1127.19.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-a3c527d56cc044c1887c29a15fe92891) 7 (Core)
設(shè)置開機(jī)從新內(nèi)核啟動
grub2-set-default 0
生成grub配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重啟使配置有效
reboot

查看正在使用的內(nèi)核
uname -r

1.9 安裝 docker-ce床绪,國內(nèi)阿里倉庫安裝

#安裝所需的軟件包耘沼。yum-utils 提供了 yum-config-manager ,并且 device mapper 存儲驅(qū)動程序需要 device-mapper-persistent-data 和 lvm2湿痢。
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

# 安裝最新版本的 Docker Engine-Community 和 containerd
sudo yum install docker-ce docker-ce-cli containerd.io

#將普通用戶可以執(zhí)行docker命令
#創(chuàng)建docker 用戶組
sudo groupadd docker

#普通用戶加入docker用戶組
sudo usermod -aG docker ${USER}

#啟動docker
sudo systemctl restart docker

# Create /etc/docker
mkdir /etc/docker

# Set up the Docker daemon
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

# Restart Docker
systemctl daemon-reload
systemctl restart docker

# 開機(jī)啟動docker
systemctl enable docker

1.10 查看kubeadm、kubectl种樱、cubelet 版本命令

kubeadm version
kubectl version --client
kubelet --version

1.11 master 節(jié)點(diǎn)初始化集群

#POD的網(wǎng)段為: 10.122.0.0/16蒙袍, api server地址就是master本機(jī)IP俊卤。
#這一步很關(guān)鍵嫩挤,由于kubeadm 默認(rèn)從官網(wǎng)k8s.grc.io下載所需鏡像,國內(nèi)無法訪問消恍,因#此需要通過–image-repository指定阿里云鏡像倉庫地址岂昭。

#參數(shù)解釋
–kubernetes-version: 用于指定k8s版本;
–apiserver-advertise-address:用于指定kube-apiserver監(jiān)聽的ip地址,就是 master本機(jī)IP地址狠怨。
–pod-network-cidr:用于指定Pod的網(wǎng)絡(luò)范圍约啊; 10.244.0.0/16
–service-cidr:用于指定SVC的網(wǎng)絡(luò)范圍;
–image-repository: 指定阿里云鏡像倉庫地址


kubeadm init --kubernetes-version=1.18.2 \
--apiserver-advertise-address=192.168.253.11 \
--ignore-preflight-errors=all \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

#執(zhí)行以下命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#使kubectl自動補(bǔ)全
source <(kubectl completion bash)

# 查看節(jié)點(diǎn)
kubectl get pod --all-namespaces -o wide

#添加網(wǎng)絡(luò)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

或者

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

#worker 節(jié)點(diǎn)添加到集群中
kubeadm join 192.168.253.11:6443 --token zz2iu9.ta51l53ajgai8rhx --discovery-token-ca-cert-hash sha256:e49bc0b32bd1f8ebdd8420bf5f29c4d8ab8b0f4abc21d0e9612b57cb8b0c41a8 

#重新生成加入集群的命令
kubeadm token create --print-join-command

1.12 部署 dashbord 界面

#下載 dashbord.yaml 文件到本地佣赖,可以在github上查看想要的版本恰矩,例如 2.0.0 地址如下:
https://github.com/kubernetes/dashboard/blob/v2.0.0/aio/deploy/recommended.yaml

kubectl create -f dashbord.yaml
kubectl proxy

#可以通過以下方式查看界面

https://github.com/kubernetes/dashboard/blob/master/docs/user/accessing-dashboard/README.md

#設(shè)置可以在外部訪問dashboard,修改 dashboard以 nodePort 訪問憎蛤,編輯配置文件

$ kubectl -n kubernetes-dashboard edit service kubernetes-dashboard

修改類型
type: ClusterIP 
改為
type: NodePort

#查看暴露的端口

kubectl -n kubernetes-dashboard get service kubernetes-dashboard
#此時(shí)可以通過31481端口訪問

https://192.168.253.11:31481/#/login

#為該賬戶創(chuàng)建登錄 token外傅,將 token 復(fù)制到 dashbord 登錄頁 token 輸入框
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep kubernetes-dashboard | awk '{print $1}')

1.13 卸載kubenetes集群

kubectl delete node --all
kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
yum clean all
yum remove kube*

2. Debian / Ubuntu

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF  
apt-get update
apt-get install -y kubelet kubeadm kubectl

# apt-get install kubectl=1.19.3-00 kubelet=1.19.3-00 kubeadm=1.19.3-00   #指定版本安裝

3. 常見問題

1.  加入集群時(shí)報(bào)錯(cuò): /etc/kubernetes/kubelet.conf already exists

原因: 上次的配置文件沒有清理干凈,刪除即可

rm -rf /etc/kubernetes/kubelet.conf /etc/kubernetes/pki/ca.crt
2.   加入集群時(shí)報(bào)錯(cuò): [ERROR Port-10250]: Port 10250 is in use

原因:上次加入沒有成功就關(guān)閉俩檬。重置kubeadm

kubeadm reset
 3. 加入集群報(bào)錯(cuò):/proc/sys/net/ipv4/ip_forward contents are not set to 1

echo "1" >/proc/sys/net/ipv4/ip_forward
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末萎胰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棚辽,更是在濱河造成了極大的恐慌技竟,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屈藐,死亡現(xiàn)場離奇詭異榔组,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)联逻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門搓扯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人遣妥,你說我怎么就攤上這事擅编。” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵爱态,是天一觀的道長谭贪。 經(jīng)常有香客問我耳高,道長排抬,這世上最難降的妖魔是什么静暂? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任凡傅,我火速辦了婚禮家浇,結(jié)果婚禮上挫望,老公的妹妹穿的比我還像新娘驾锰。我一直安慰自己扮碧,他們只是感情好磁椒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布堤瘤。 她就那樣靜靜地躺著,像睡著了一般浆熔。 火紅的嫁衣襯著肌膚如雪本辐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天医增,我揣著相機(jī)與錄音慎皱,去河邊找鬼。 笑死叶骨,一個(gè)胖子當(dāng)著我的面吹牛茫多,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播忽刽,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼天揖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缔恳?” 一聲冷哼從身側(cè)響起宝剖,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎歉甚,沒想到半個(gè)月后万细,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纸泄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年赖钞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聘裁。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雪营,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衡便,到底是詐尸還是另有隱情献起,我是刑警寧澤洋访,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站谴餐,受9級特大地震影響姻政,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岂嗓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一汁展、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厌殉,春花似錦食绿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至熏兄,卻和暖如春品洛,著一層夾襖步出監(jiān)牢的瞬間树姨,已是汗流浹背摩桶。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帽揪,地道東北人硝清。 一個(gè)月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像转晰,于是被迫代替她去往敵國和親芦拿。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容