Centos安裝 k8s集群

一. 安裝docker

1.安裝依賴包

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

2.設(shè)置阿里云鏡像源

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

使用docker腳本一鍵安裝

curl -fsSL "https://get.docker.com/" | sh
systemctl enable --now docker

3.安裝Docker-CE

Install Docker CE

Set up the repository

Install required packages.

yum install yum-utils device-mapper-persistent-data lvm2

Add Docker repository.

yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

Install Docker CE.

yum update && yum install docker-ce-18.06.2.ce

Create /etc/docker directory.

mkdir /etc/docker

Setup 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

安裝k8s

在Docker安裝完成的基礎(chǔ)上,完成一下步驟

使用阿里云鏡像源

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=0
EOF

關(guān)閉SElinux

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

安裝kubelet kubeadm kubectl

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

systemctl enable --now kubelet  #
開機(jī)啟動(dòng)kubelet

centos7用戶還需要設(shè)置路由:

yum install -y bridge-utils.x86_64
modprobe  br_netfilter  # 加載br_netfilter模塊昔园,使用lsmod查看開啟的模塊
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system  # 重新加載所有配置文件

systemctl disable --now firewalld  # 關(guān)閉防火墻

k8s要求關(guān)閉swap (qxl)

swapoff -a && sysctl -w vm.swappiness=0  # 關(guān)閉swap
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab  # 取消開機(jī)掛載swap

國外服務(wù)器

kubeadm config images pull #拉取集群所需鏡像厂财,這個(gè)需要翻墻

國內(nèi)服務(wù)器

kubeadm config images list #列出所需鏡像锰提,根據(jù)所需鏡像安裝

(不是一定是下面的,根據(jù)實(shí)際情況來選擇版本)

建議節(jié)點(diǎn)中也進(jìn)行此操作安裝

根據(jù)所需鏡像名字先拉取國內(nèi)資源

docker pull mirrorgooglecontainers/kube-apiserver:v1.14.2
docker pull mirrorgooglecontainers/kube-controller-manager:v1.14.2
docker pull mirrorgooglecontainers/kube-scheduler:v1.14.2
docker pull mirrorgooglecontainers/kube-proxy:v1.14.2
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.3.10
docker pull coredns/coredns:1.3.1  # 這個(gè)在mirrorgooglecontainers中沒有

# 修改鏡像tag
docker tag mirrorgooglecontainers/kube-apiserver:v1.14.2 k8s.gcr.io/kube-apiserver:v1.14.2
docker tag mirrorgooglecontainers/kube-controller-manager:v1.14.2 k8s.gcr.io/kube-controller-manager:v1.14.2
docker tag mirrorgooglecontainers/kube-scheduler:v1.14.2 k8s.gcr.io/kube-scheduler:v1.14.2
docker tag mirrorgooglecontainers/kube-proxy:v1.14.2 k8s.gcr.io/kube-proxy:v1.14.2
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1


# 把所需的鏡像下載好庐冯,init的時(shí)候就不會(huì)再拉鏡像吐绵,由于無法連接google鏡像庫導(dǎo)致出錯(cuò)

# 刪除原來的鏡像
docker rmi mirrorgooglecontainers/kube-apiserver:v1.14.2
docker rmi mirrorgooglecontainers/kube-controller-manager:v1.14.2
docker rmi mirrorgooglecontainers/kube-scheduler:v1.14.2
docker rmi mirrorgooglecontainers/kube-proxy:v1.14.2
docker rmi mirrorgooglecontainers/pause:3.1
docker rmi mirrorgooglecontainers/etcd:3.3.10
docker rmi coredns/coredns:1.3.1
cat >> kubeadm-config.yaml <<EOF
apiServer:
  timeoutForControlPlane: 4m0s
  extraArgs:
    enable-admission-plugins: NamespaceLifecycle,LimitRanger,ServiceAccount,TaintNodesByCondition,Priority,DefaultTolerationSeconds,DefaultStorageClass,PersistentVolumeClaimResize,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota
    runtime-config: "api/all=true"
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: stable
#下面是master的ip
controlPlaneEndpoint: "master節(jié)點(diǎn)的ip:8443"
dns:
  type: "CoreDNS"
networking:
  dnsDomain: cluster.local
  podSubnet: "10.244.0.0/16"
EOF

初始化k8s

kubeadm reset --force #重置集群彼哼,初始化出錯(cuò)可以使用

#k8s初始化
#對hostname命名也有規(guī)范对妄,報(bào)hostname不規(guī)范修改/etc/hostname,然后reboot就行了
kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs 

初始化成功會(huì)生成token

#每個(gè)機(jī)器創(chuàng)建的master以下部分都不同,需要自己保存好,用于添加k8s節(jié)點(diǎn)
kubeadm join ip:8443 --token xxx \
    --discovery-token-ca-cert-hash sha256:xxxx

普通用戶設(shè)置權(quán)限

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

安裝網(wǎng)絡(luò)calico敢朱、flannel

# use calico cni
kubectl apply -f https://docs.projectcalico.org/v3.7/manifests/canal.yaml
# use standard flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.11.0/Documentation/kube-flannel.yml

node加入集群中

  • node需要安裝docker和kubectl\kubecadm\kubelet,且版本與master的版本一致剪菱。
#主節(jié)點(diǎn)初始化生成的token摩瞎,在節(jié)點(diǎn)中使用
kubeadm join master_ip:8443 --token xxx \
    --discovery-token-ca-cert-hash sha256:xxxx
    
# 加入成功后查看master的nodes數(shù)目,稍等節(jié)點(diǎn)進(jìn)行初始化孝常,然后從notready到ready的狀態(tài)旗们。
    ```
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市构灸,隨后出現(xiàn)的幾起案子上渴,更是在濱河造成了極大的恐慌,老刑警劉巖喜颁,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稠氮,死亡現(xiàn)場離奇詭異,居然都是意外死亡半开,警方通過查閱死者的電腦和手機(jī)隔披,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寂拆,“玉大人奢米,你說我怎么就攤上這事【烙溃” “怎么了鬓长?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長尝江。 經(jīng)常有香客問我涉波,道長,這世上最難降的妖魔是什么茂装? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任怠蹂,我火速辦了婚禮,結(jié)果婚禮上少态,老公的妹妹穿的比我還像新娘城侧。我一直安慰自己,他們只是感情好彼妻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布嫌佑。 她就那樣靜靜地躺著,像睡著了一般侨歉。 火紅的嫁衣襯著肌膚如雪屋摇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天幽邓,我揣著相機(jī)與錄音炮温,去河邊找鬼。 笑死牵舵,一個(gè)胖子當(dāng)著我的面吹牛柒啤,可吹牛的內(nèi)容都是我干的倦挂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼担巩,長吁一口氣:“原來是場噩夢啊……” “哼方援!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涛癌,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤犯戏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后拳话,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體先匪,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年假颇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胚鸯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笨鸡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坦冠,到底是詐尸還是另有隱情形耗,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布辙浑,位于F島的核電站激涤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏判呕。R本人自食惡果不足惜倦踢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望侠草。 院中可真熱鬧辱挥,春花似錦、人聲如沸边涕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽功蜓。三九已至园爷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間式撼,已是汗流浹背童社。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留著隆,地道東北人扰楼。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓甘改,卻偏偏與公主長得像,于是被迫代替她去往敵國和親灭抑。 傳聞我的和親對象是個(gè)殘疾皇子十艾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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