Linux安裝kubernetes

使用KUBEADM安裝KUBERNETES V1.14.0

1、環境準備
      操做系統: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 核心或更多 集羣中的全部機器的⽹絡彼此均能相互鏈接(公⽹和內⽹均可以)node

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

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

2、安裝步驟
     1. 
定義hostname

hostname k8s-master

    2.編輯 /etc/hostsgithub

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源並安裝相關核⼼⽂件docker

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 開機啓動api

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.更改鏡像名稱
app

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的狀態時,證實啓動完畢。

相關文章
相關標籤/搜索