1. 前提條件就不再詳細描寫了:
關閉防火牆 升級內核到至少4.19 關閉swap 關閉selinux 等
2. 本次安裝采用酸酸乳和privoxy的方式進行, 不過發現部分rpm 包還是特別慢,沒辦法用vps從境外下載rpm包進行安裝.
酸酸乳的方式不在描述
我這邊是買了一個 某商的月5.88刀的service
設置到CentOS的服務器上面
然后設置privoxy
設置 proxy
我還有有一個年費49刀的vps
(自費 !-_-!)
3. 發現docker iamges 可以pull 但是 rpm包 下載實在是非常非常的緩慢, 沒辦法 改用某商vps下載rpm包
在 vps 上面上 首先創建 rpm 源 vim /etc/yum.repos.d/kubernetes.repo 添加內容 [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kube*
下載最新的rpm包
yumdownloader kubelet-1.18.0-0 kubectl-1.18.0-0 kubeadm-1.18.0 --disableexcludes=kubernetes
將下載好的文件放到 安裝好 酸酸乳的centos服務器上面
4. centos 上面安裝這三個包
yum localinstall *.rpm
5. kubeadm 進行初始化
kubeadm init --pod-network-cidr=10.244.0.0/16 注意如果之前有 kubeadm的集群的化 需要先執行 kubeadm reset
等待教程時間就可以完成操作了 注意 這個時候需要能連網下載部分images才可以
注意設置好了之后需要進行一下 配置文件更新
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
這樣就可以直接執行命令
kubectl get nodes
注意單節點測試服務時需要將master節點設置能夠部署pod
kubectl taint nodes --all node-role.kubernetes.io/master-
不然無法使用.
另外部署calico 時 要保證 80端口不被占用
lsof -i:80
如果端口被占用 會造成 pod無法正常開啟.
6. 安裝calico
一般說 flannel的性能不如calico 所以這次實驗改用 calico
建議還是在能上外網的情況下進行
獲取配置文件
mkdir /root/calico
wget -c https://docs.projectcalico.org/v3.8/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
下載完成之后執行命令
kubectl apply -f calico.yaml
7. 安裝ingress-nginx
mkdir /root/ingress-nginx wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml 修改一下配置文件 在 image 上一層的配置文件加上 hostNetwork: true 使之能夠提供服務 注意層級與containers 這一層相同 spec: # wait up to five minutes for the drain of connections terminationGracePeriodSeconds: 300 serviceAccountName: nginx-ingress-serviceaccount hostNetwork: true nodeSelector: kubernetes.io/os: linux containers: - name: nginx-ingress-controller image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
然后一樣的執行一下 kubectl apply -f manadatory.yaml 即可
8. 重啟一下服務器進行驗證
我這邊的效果為
[root@k8s143 ingress-nginx]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s143 Ready master 51m v1.18.0 [root@k8s143 ingress-nginx]# kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE ingress-nginx nginx-ingress-controller-77db54fc46-cfnsl 1/1 Running 9 34m kube-system calico-kube-controllers-77c5fc8d7f-pwk68 1/1 Running 1 26m kube-system calico-node-lsqg2 1/1 Running 1 26m kube-system coredns-66bff467f8-gv4m7 1/1 Running 2 51m kube-system coredns-66bff467f8-hnrxb 1/1 Running 2 51m kube-system etcd-k8s143 1/1 Running 3 51m kube-system kube-apiserver-k8s143 1/1 Running 3 51m kube-system kube-controller-manager-k8s143 1/1 Running 3 51m kube-system kube-proxy-hx74q 1/1 Running 3 51m kube-system kube-scheduler-k8s143 1/1 Running 3 51m [root@k8s143 ingress-nginx]#
9. 下載好的 images和rpm包如下
REPOSITORY TAG IMAGE ID CREATED SIZE calico/node v3.8.8-1 3610c051aa19 5 days ago 192MB calico/cni v3.8.8-1 ca2a236d9210 5 days ago 161MB calico/kube-controllers v3.8.8 7125b7d47e9f 10 days ago 48.9MB k8s.gcr.io/kube-proxy v1.18.0 43940c34f24f 10 days ago 117MB k8s.gcr.io/kube-controller-manager v1.18.0 d3e55153f52f 10 days ago 162MB k8s.gcr.io/kube-apiserver v1.18.0 74060cea7f70 10 days ago 173MB k8s.gcr.io/kube-scheduler v1.18.0 a31f78c7c8ce 10 days ago 95.3MB calico/pod2daemon-flexvol v3.8.8 cacd6d732f12 2 weeks ago 9.38MB quay.io/kubernetes-ingress-controller/nginx-ingress-controller 0.30.0 89ccad40ce8e 5 weeks ago 323MB k8s.gcr.io/pause 3.2 80d28bedfe5d 7 weeks ago 683kB k8s.gcr.io/coredns 1.6.7 67da37a9a360 2 months ago 43.8MB sapcc/tiller v2.15.2 9bdad03644c7 5 months ago 88.1MB k8s.gcr.io/etcd 3.4.3-0 303ce5db0e90 5 months ago 288MB
需要的rpm包為
-rw-r--r-- 1 root root 9204778 Apr 5 09:18 2d6ec4ae24a355c5818174f39e212f116cbd796cabcc113a68fc613d3d1fe147-kubeadm-1.18.0-0.x86_64.rpm -rw-r--r-- 1 root root 21797010 Apr 5 09:18 3d1298e3f34961565204febc5da169d1ac3673b7eb772a7bc19c2b310526b0e8-kubelet-1.18.0-0.x86_64.rpm -rw-r--r-- 1 root root 9996474 Apr 5 09:18 cf6754a3497c5c05de050f2409eb3b2854467967cf359a8ed9c6e6c32808c7de-kubectl-1.18.0-0.x86_64.rpm