Linux安裝kubernetes


使用KUBEADM安裝KUBERNETES V1.14.0

一、環境准備
      操作系統:Centos 7.5
      一台或多台運⾏行行着下列列系統的機器器: Ubuntu 16.04+ Debian 9 CentOS 7 RHEL 7 Fedora 25/26 (盡⼒服務) HypriotOS v1.0.1+ Container Linux (針對1800.6.0 版本測試)

     每台機器器 2 GB 或更多的 RAM (如果少於這個數字將會影響您應用的運⾏內存)2 CPU 核心或更多 集群中的所有機器的⽹絡彼此均能相互連接(公⽹和內⽹都可以)

節點之中不可以有重復的主機名,MAC 地址,product_uuid。更多詳細信息請參見這里 。 開啟主機上的一些特定端口. 更多詳細信息請參見這里。 禁用 Swap 交換分區

。為了了保證 kubelet 正確運⾏行行,必須 禁用交換分區。

二、安裝步驟
     1. 
定義hostname

hostname k8s-master

    2.編輯 /etc/hosts

vi /etc/hosts

#當然我們在這⾥根據實際情況指定⾃⼰的ip地址即可
192.168.194.135 k8s-master

   3.禁用交換分區等操作

# 將 SELinux 設置為 permissive 模式(將其禁⽤用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 可先不運行
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
   
sysctl --system

 4.配置yum源並安裝相關核⼼⽂件

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=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

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

5.設置docker 與 kubelet 開機啟動

systemctl enable kubelet

systemctl enable docker

systemctl start docker

6.下載kubernetes所需鏡像
   我們事先可以通過如下命令查看所依賴的docker鏡像版本 kubeadm config images list ,然后通過國內鏡像倉庫下載所需的鏡像⽂文件:

docker pull mirrorgooglecontainers/kube-apiserver:v1.14.1
docker pull mirrorgooglecontainers/kube-controller-manager:v1.14.1
docker pull mirrorgooglecontainers/kube-scheduler:v1.14.1
docker pull mirrorgooglecontainers/kube-proxy:v1.14.1
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.3.10
docker pull coredns/coredns:1.3.1

注意:在這里的版本號⼀一定要先通過上述命令查看后在填寫,本例中的是v1.14.0后續可能版本會有 變化,因為國內的源隨時可能更新k8s的版本

7.更改鏡像名稱

docker tag docker.io/mirrorgooglecontainers/kube-proxy:v1.14.1    k8s.gcr.io/kube-proxy:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-scheduler:v1.14.1    k8s.gcr.io/kube-scheduler:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-apiserver:v1.14.1    k8s.gcr.io/kube-apiserver:v1.14.1
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager:v1.14.1    k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag docker.io/mirrorgooglecontainers/etcd:3.3.10    k8s.gcr.io/etcd:3.3.10
docker tag docker.io/mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag docker.io/coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1

刪除原先的鏡像:

docker image rm docker.io/mirrorgooglecontainers/kube-apiserver:v1.14.1
docker image rm docker.io/mirrorgooglecontainers/kube-controller-manager:v1.14.1
docker image rm docker.io/mirrorgooglecontainers/kube-scheduler:v1.14.1
docker image rm docker.io/mirrorgooglecontainers/kube-proxy:v1.14.1
docker image rm docker.io/mirrorgooglecontainers/pause:3.1
docker image rm docker.io/mirrorgooglecontainers/etcd:3.3.10
docker image rm docker.io/coredns/coredns:1.3.1

8.初始化master環境

kubeadm init --kubernetes-version v1.14.1  --pod-network-cidr 10.244.0.0/16  --ignore-preflight-errors=NumCPU

當運⾏行行成功后會出現的提示信息,我們注意以下幾點

根據提示信息我們可以運行

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

記錄加入token的秘鑰

kubeadm join 172.17.0.13:6443 --token a5tzoh.svr1xpsh2kpdjfcn --discovery-token-ca-cert-hash    sha256:816577e3c2b2c3184002f49089de08963dd34e63166017bbe7edbeba15fdc2b2

#19.4.22 15:16
kubeadm join 172.19.67.179:6443 --token b3vz9z.3e15folsd6h4pzbi \
    --discovery-token-ca-cert-hash sha256:461913a92fbbbf0adc18808ed1c796b5d80c45183611d2d54e09624c85a550e9
    
#19.4.22 15.47
kubeadm join 172.19.67.179:6443 --token p65zw9.i3tfyz1pcgihy6i2 
    --discovery-token-ca-cert-hash    sha256:f397790ffdfe0d2ee5d9fc67a3e04acd00554e8c23e8da78bf9ead347c8dd67a 
 #19.4.24 15.35

 

按需開啟master創建pod的功能

kubectl taint nodes --all node-role.kubernetes.io/master-

默認情況出於安全考慮 master節點是不允許創建pod的,我們可以通過如上命令開啟此功能

安裝⽹網絡插件

$ iptables -P FORWARD ACCEPT

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

當所有運行完成后 我們可以通過 kubectl get pod --all-namespaces 來查看pod的運⾏行行狀態,當所有為run的狀態時,證明啟動完畢。

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM