k8s系列-12-離線二進位制方式進行安裝k8s

老闆們,點個關注吧。

k8s系列-12-離線二進位制方式進行安裝k8s

k8s系列-12-離線二進位制方式進行安裝k8s

有些情況不支援你連線外網,那麼這種情況下就不支援kubespray方式了,那如何安裝kubenetes呢?下面我們再採用二進位制的方式來進行安裝下看看吧。

k8s系列-12-離線二進位制方式進行安裝k8s

介紹

二進位制安裝方式,也被稱為kubernetes-the-hard-way(k8s的困難方法),有以下特徵:

生產高可用證書永不過期不依賴第三方ansible等工具採用本地代理,不依賴haproxy或者keepalived

那麼這種方式適合哪種人使用呢?

深入學習的人喜歡掌控每個元件的人正在部署生產環境的人

上面太官方了哈,簡單的來說,這種方式就是你能控制每個元件如何進行安裝,而不像kubespary那種方式,直接一鍵化部署了,很多東西自己都不能掌控,出問題都不知道是哪兒的問題。

不過兩種方式如何取捨,還是要看個人習慣哈。不能說哪種好,哪種差。各有千秋吧。

環境

CPU>=2核,記憶體>=2G,其他資訊如下:

node-name

ip-address

role

node1

192。168。112。130

master、etcd

node2

192。168。112。131

master、worker、etcd

node3

192。168。112。132

worker、etcd

本次所有安裝使用root使用者進行。

配置主機名和路由

PS:需要在三個節點上都進行操作

[root@localhost ~]# vim /etc/hostname node1  # 三臺伺服器每臺寫自己的名字[root@localhost ~]# hostname node1[root@localhost ~]# bash[root@node1 ~]# vim /etc/hosts192。168。112。130 node1192。168。112。131 node2192。168。112。132 node3[root@node1 ~]#

安裝依賴

PS:需要在三個節點上都進行操作

# 更新yum源[root@node1 ~]# yum update -y# 下載依賴[root@node1 ~]# yum install -y socat conntrack ipvsadm ipset jq sysstat curl iptables libseccomp yum-utils

策略調整

PS:需要在三個節點上都進行操作

[root@node1 ~]# setenforce 0[root@node1 ~]# vim /etc/selinux/configSELINUX=disabled[root@node1 ~]# systemctl stop firewalld。service[root@node1 ~]# systemctl disable firewalld。service[root@node1 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT[root@node1 ~]# swapoff -a[root@node1 ~]# systemctl stop dnsmasq。service[root@node1 ~]# systemctl disable dnsmasq。service

引數設定

PS:需要在三個節點上都進行操作

[root@node1 ~]# vim /etc/sysctl。d/kubernetes。confnet。bridge。bridge-nf-call-ip6tables = 1net。bridge。bridge-nf-call-iptables = 1net。ipv4。ip_nonlocal_bind = 1net。ipv4。ip_forward = 1vm。swappiness = 0vm。overcommit_memory = 1[root@node1 ~]# sysctl -p /etc/sysctl。d/kubernetes。conf

免密配置

PS:在node1節點操作即可

[root@node1 ~]# ssh-keygen  # 一路回車就行[root@node1 ~]# cat /root/。ssh/id_rsa。pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDImB4dg1iR14Ghmd6J2h2BhBxZi59NR3xgD3dXWn8i3VPpzydKhR5bw2Q8+gqQPGqUtGCWbjtf30KrMGm2idpf8GJu5caJVMSFoscSYbv9nv9UvNCEuyDSgmpoZSDBxNK9CxBSNSBCvyOcFrjGyEyrBBCyjFVH/T71hG9SUwvdR3E38Qyv7/npYmVaoLADvDDf9E1c6siQLe8jbhvz6fjXVXLFG00/+1p6qox8dvNKQK30D7rYB8NunqnMN4vDFarQSCRJ8u6x9yThqTV0j8G8pXX3YkmMbTJT7BqAjeF3fuDgoy57/s3CgjxPqKE09tqx2B9Qaj/Lud/8xCfQ2Xvr root@node1[root@node1 ~]#

PS:需要在三個節點上都進行操作,包括node1

軟體包下載

可以從google上進行下載,我這裡也準備了一份下載好的,在公眾號“運維家”後臺回覆 “二進位制k8s” ,即可獲取下載地址。我看了下,最新版貌似是1。23。4版本,我這裡提供的是1。20。2版本。

軟體包分發

上傳到任一節點上,我這裡上傳的是node1節點。

[root@node1 ~]# pwd/root[root@node1 ~]# tar xf kubernetes-v1。20。2。tar。gz [root@node1 ~]# cd kubernetes-v1。20。2/[root@node1 kubernetes-v1。20。2]# lsetcd-v3。4。10-linux-amd64。tar。gz  kube-apiserver  kube-controller-manager  kubectl  kubelet  kube-proxy  kube-scheduler[root@node1 kubernetes-v1。20。2]# chmod +x kube*# 分發master元件[root@node1 kubernetes-v1。20。2]# MASTERS=(node1 node2)[root@node1 kubernetes-v1。20。2]# for instance in ${MASTERS[@]}; do scp kube-apiserver kube-controller-manager kube-scheduler kubectl root@${instance}:/usr/local/bin/; done# 分發worker元件[root@node1 kubernetes-v1。20。2]# WORKERS=(node2 node3)[root@node1 kubernetes-v1。20。2]# for instance in ${WORKERS[@]}; do scp kubelet kube-proxy root@${instance}:/usr/local/bin/; done# 分發etcd元件[root@node1 kubernetes-v1。20。2]# tar xf etcd-v3。4。10-linux-amd64。tar。gz [root@node1 kubernetes-v1。20。2]# cd etcd-v3。4。10-linux-amd64/[root@node1 etcd-v3。4。10-linux-amd64]# ETCDS=(node1 node2 node3)[root@node1 etcd-v3。4。10-linux-amd64]# for instance in ${ETCDS[@]}; do scp etcd etcdctl root@${instance}:/usr/local/bin/; done

至此,本文結束。基礎環境就準備好了,接下來就開始具體安裝每一個小元件。