centos7 用kubeadm安裝 k8s v1.10.0

前提:centos能訪問互聯網html

安裝docker-cenode

// 安裝所需的包
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2

// 設置穩定的存儲庫
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

// 安裝最新版本
yum install docker-ce

// 啓動docker服務
systemctl enable docker && systemctl start docker  

 

一、禁用防火牆linux

systemctl stop firewalld
systemctl disable firewalldgit

二、禁用SELINUX和關閉swapgithub

setenforce 0docker

vi /etc/selinux/configshell

設置SELINUX=disabledcentos

swapoff -aapi

vi /etc/fstab
註釋掉swap那行網絡

三、設置路由

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

sysctl -p /etc/sysctl.d/k8s.conf

四、下載國內鏡像到本地,並tag爲k8s內鏡像

docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-apiserver-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-scheduler-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-controller-manager-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-proxy-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-kube-dns-amd64:1.14.8
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-sidecar-amd64:1.14.8
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/etcd-amd64:3.1.12
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/pause-amd64:3.1

 

docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-apiserver-amd64:v1.10.0 k8s.gcr.io/kube-apiserver-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-scheduler-amd64:v1.10.0 k8s.gcr.io/kube-scheduler-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-controller-manager-amd64:v1.10.0 k8s.gcr.io/kube-controller-manager-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-proxy-amd64:v1.10.0 k8s.gcr.io/kube-proxy-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-kube-dns-amd64:1.14.8 k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.8
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-sidecar-amd64:1.14.8 k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.8
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/etcd-amd64:3.1.12 k8s.gcr.io/etcd-amd64:3.1.12
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1

五、設置k8s的國內源

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

六、安裝 kubelet、kubeadm、kubectl

yum makecache fast && yum install -y kubelet kubeadm kubectl

七、配置 kubelet

kubelet生成的配置文件將參數--cgroup-driver和docker的cgroup-driver必須一致

修改文件kubelet的配置文件/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

將其中的KUBELET_CGROUP_ARGS參數更改爲cgroupfs:

Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"

Kubernetes從1.8開始要求關閉系統的 Swap ,能夠經過 kubelet 的啓動參數--fail-swap-on=false更改這個限制,在上面的配置文件中增長一項配置:

Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"

最後,從新加載配置並啓動kubelet

systemctl daemon-reload

systemctl enable kubelet && systemctl start kubelet

八、用kubeadm初始化

注意:若是是flannel網絡--pod-network-cidr=10.244.0.0/16, 若是是Calico網絡--pod-network-cidr=192.168.0.0/16

kubeadm init --kubernetes-version=v1.10.0 --pod-network-cidr=10.244.0.0/16

等待一段時間,若是出現下面信息,則表示初始化成功:

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
 https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node

 

若是想要master也能夠調度pod,則運行下面命令:

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

九、設置權限

要使kubectl適用於非root用戶,請運行如下命令:

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

或者,若是您是root用戶,則能夠運行:

export KUBECONFIG=/etc/kubernetes/admin.conf

十、安裝flannel網絡

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

十一、查看POD節點

kubectl get pods --all-namespaces

全部節點,狀態都是Running,則表示安裝成功

 

參考網址:https://www.cnblogs.com/cp-miao/p/8891200.html

相關文章
相關標籤/搜索