CentOS76 安装k8s1.18的简单步骤

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

 

你可能感兴趣的:(CentOS76 安装k8s1.18的简单步骤)