yum安装kubernetes 1.15.3

设置 yum repository

yum install -y yum-utils device-mapper-persistent-data lvm2

 

配置docker官方yum

sudo yum-config-manager \

--add-repo \

https://download.docker.com/linux/centos/docker-ce.repo

 

安装并启动 docker

在 master 节点和 node 节点都要执行

yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable docker sudo systemctl start docker

 

安装 nfs-utils

在 master 节点和 node 节点都要执行

安装 nfs-utils 才能挂载 nfs 网络存储

yum install -y nfs-utils

 

 

 

kubernetes基本配置

 

配置K8S的yum源

 

#在 master 节点和 node 节点都要执行

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

 

 

关闭防火墙、SeLinux、Swap

 

在 master 节点和 node 节点都要执行

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

关闭Selinux

setenforce 0

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

关闭Swap

swapoff -a

yes | cp /etc/fstab /etc/fstab.bak

cat /etc/fstab.bak |grep -v swap > /etc/fstab

配置sysctl.conf

在 master 节点和 node 节点都要执行

echo "net.ipv4.ip_forward = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1"

>>/etc/sysctl.conf

sysctl -p

 

安装kubelet、kubeadm、kubectl

 

在 master 节点和 node 节点都要执行

yum install -y kubelet kubeadm kubectl

 

添加 --exec-opt native.cgroupdriver=systemd

在ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock添加 

cat /usr/lib/systemd/system/docker.service|grep -v "#"|grep -v "^$"

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

BindsTo=containerd.service

After=network-online.target firewalld.service containerd.service

Wants=network-online.target

Requires=docker.socket

[Service]

Type=notify

ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd

ExecReload=/bin/kill -s HUP $MAINPID

TimeoutSec=0

RestartSec=2

Restart=always

StartLimitBurst=3

StartLimitInterval=60s

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

TasksMax=infinity

Delegate=yes

KillMode=process

[Install]

WantedBy=multi-user.target

替换国内Docker镜像

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

 

 

重启 docker,并启动 kubelet

systemctl daemon-reload

systemctl restart docker

systemctl enable kubelet

systemctl start kubelet

 

 

初始化 master 节点

在 master 节点执行

配置域名

echo "172.16.88.210 master.luca.com" >> /etc/hosts

 

创建 ./kubeadm-config.yaml

在 master 节点执行

cat <<EOF > ./kubeadm-config.yaml

apiVersion: kubeadm.k8s.io/v1beta1

kind: ClusterConfiguration

kubernetesVersion: v1.15.1

imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers

controlPlaneEndpoint: "master.luca.com:6443"

networking:

podSubnet: "10.100.0.1/20"

EOF

 

初始化 apiserver

在 master 节点执行

kubeadm init --config=kubeadm-config.yaml --upload-certs

 

You can now join any number of the control-plane node running the following command on each as root:

 

kubeadm join master.luca.com:6443 --token 1u23ed.kgjq2lsrvcl3l48d \

--discovery-token-ca-cert-hash sha256:76477643fc2029b684f040cbf8778789c5fb8f7db6eed42317835f4e29aacc26 \

--control-plane --certificate-key 615cb3929f93073c31d15568bda5f8f8659e579df423c6c025cd30ea20f23829

 

Please note that the certificate-key gives access to cluster sensitive data, keep it secret!

As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use

"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.

 

Then you can join any number of worker nodes by running the following on each as root:

 

kubeadm join master.luca.com:6443 --token 1u23ed.kgjq2lsrvcl3l48d \

--discovery-token-ca-cert-hash sha256:76477643fc2029b684f040cbf8778789c5fb8f7db6eed42317835f4e29aacc26

 

安装 calico网络

在 master 节点执行

rm -rf /root/.kube/

mkdir /root/.kube/

cp -i /etc/kubernetes/admin.conf /root/.kube/config

kubectl apply -f https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml

 

确认容器组状态

在 master 节点执行

直到所有的容器组处于 Running 状态才完成

watch kubectl get pod -n kube-system

NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-7b4657785d-87ppv   1/1     Running   0          33m
calico-node-7t2vm                          1/1     Running   0          23m
calico-node-dxgzs                          1/1     Running   0          23m
calico-node-jr67v                          1/1     Running   0          23m
calico-node-spzmj                          1/1     Running   0          23m
calico-node-ss5px                          1/1     Running   0          33m
coredns-6967fb4995-6xwkn                   1/1     Running   0          39m
coredns-6967fb4995-m8w29                   1/1     Running   0          39m
etcd-k8s-master                            1/1     Running   0          40m
kube-apiserver-k8s-master                  1/1     Running   0          40m
kube-controller-manager-k8s-master         1/1     Running   0          40m
kube-proxy-d6rlz                           1/1     Running   0          23m
kube-proxy-gl649                           1/1     Running   0          23m
kube-proxy-l94wg                           1/1     Running   0          39m
kube-proxy-rlldt                           1/1     Running   0          23m
kube-proxy-vpzq5                           1/1     Running   0          23m
kube-scheduler-k8s-master                  1/1     Running   0          40m

 

确认master 初始化结果

kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master Ready master 9m29s v1.15.3

 

 

初始化 node节点

只在 master 节点执行,获取加入节点参数

 kubeadm token create --print-join-command

kubeadm join master.luca.com:6443 --token jgr7ab.4mzdsrq3rj1y0b2u --discovery-token-ca-cert-hash sha256:76477643fc2029b684f040cbf8778789c5fb8f7db6eed42317835f4e29aacc26

 

加入节点

所有node服务器执行

echo "172.16.88.210 master.luca.com" >> /etc/hosts

kubeadm join master.luca.com:6443 --token jgr7ab.4mzdsrq3rj1y0b2u --discovery-token-ca-cert-hash sha256:76477643fc2029b684f040cbf8778789c5fb8f7db6eed42317835f4e29aacc26

 

在 master 节点执行,获取加入信息

kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master Ready master 17m v1.15.3

k8s-salve-1 NotReady <none> 19s v1.15.3

k8s-salve-2 NotReady <none> 18s v1.15.3

k8s-salve-3 NotReady <none> 15s v1.15.3

k8s-salve-4 NotReady <none> 14s v1.15.3

 

安装 Ingress Controller

只在 master 节点执行

kubectl apply -f https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/nginx-ingress.yaml

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值