K8s 管理平台使用者越來越多,要搞清楚其特性,最好來實戰安裝一下
一.準備工作
建立了三台vpc執行個體主機,配置設定角色如下
ubuntu16 master
192.168.0.98
Centos 7.4 worker
192.168.0.96
192.168.0.97
三台主機中直接yum/apt安裝好docker
yum install docker
apt-get install docker
阿裡雲ecs 預設是關閉防火牆的,如果有開啟防火牆和selinux服務,需要先關閉
使用阿裡雲鏡像源在每台ecs中安裝 kubelet kubeadm kubectl
https://opsx.alibaba.com/mirrorDebian / Ubuntu
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-get update && apt-get install -y apt-transport-https
CentOS / RHEL / Fedora
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
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
二.配置master節點
網絡上有很多都是手工安裝各個元件 etcd flannel
我們按照最簡單的方式,使用kubeadm來執行安裝,即按照官方文檔的方法來操作
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
所有管理元件采用DaemonSet Pod來安裝
vi ~/kubeadm.conf
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 0.0.0.0
networking:
podSubnet: 10.244.0.0/16
etcd:
image: registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.1.11
kubernetesVersion: v1.10.3
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
執行操作指令
Kubeadm init —config /root/kubeadm.conf
2.安裝kube-flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
三.配置worker節點
1.将worker節點加入master
kubeadm join 192.168.0.98:6443 --token catsr2.vxxxx --discovery-token-ca-cert-hash sha256:xxxxxx
這些資訊來自master節點執行kubeadm init 完成後輸出的結果
如果沒有記錄,可以在master節點中執行如下指令擷取
kubeadm token create --print-join-command
2.安裝kube-flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
三.配置worker節點
1.将worker節點加入master
kubeadm join 192.168.0.98:6443 --token catsr2.vxxxx --discovery-token-ca-cert-hash sha256:xxxxxx
這些資訊來自master節點執行kubeadm init 完成後輸出的結果
如果沒有記錄,可以在master節點中執行如下指令擷取
kubeadm token create --print-join-command
api:
advertiseAddress: 0.0.0.0
networking:
podSubnet: 10.244.0.0/16
etcd:
image: registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.1.11
kubernetesVersion: v1.10.3
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kind: MasterConfiguration
api:
advertiseAddress: 0.0.0.0
networking:
podSubnet: 10.244.0.0/16
etcd:
image: registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.1.11
kubernetesVersion: v1.10.3
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
執行操作指令
Kubeadm init —config /root/kubeadm.conf
2.安裝kube-flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
三.配置worker節點
1.将worker節點加入master
kubeadm join 192.168.0.98:6443 --token catsr2.vxxxx --discovery-token-ca-cert-hash sha256:xxxxxx
這些資訊來自master節點執行kubeadm init 完成後輸出的結果
如果沒有記錄,可以在master節點中執行如下指令擷取
kubeadm token create --print-join-command
2.master向worker 分發kube-proxy和flannel pod 直接去拉取 k8s.gcr.io上的鏡像是不成功的
是以需要在worker節點上 先下載下傳阿裡雲的鏡像源中pause-amd,然後再做個tag
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1 k8s.gcr.io/google_containers/pause-amd64:3.1
最終完成結果如圖所示
四.Troubleshooting
1.無法執行kubectl操作,可以按照執行如下指令之一
export KUBECONFIG=/etc/kubernetes/kubelet.conf
alias kubectl='kubectl --kubeconfig=/etc/kubernetes/kubelet.conf
阿裡雲容器服務可以直接通過web方式一鍵安裝,更省心省力
https://yq.aliyun.com/articles/73922
https://www.aliyun.com/product/kubernetes