kubernetes安装过程概览

1、重置kubetnetes,节点工作不正常,在踢出集群后,再次加入集群前需要重置

kubeadm reset -f  

rm -rf ~/.kube

2、安装kubeadm,kubectl,kubelet三个二进制

配置k8s源,国内一般采用阿里源,官方的太慢

centos x86系统

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
EOF

centos arm 系统

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/
enabled=1
gpgcheck=0
EOF

ubuntu 18.04

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list

deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

EOF

安装(centos)

yum -y install kubelet-1.16.0-0  kubeadm-1.16.0-0  kubectl-1.16.0-0

安装(ubunut)

apt-get install -y kubelet=1.17.3-00 kubeadm=1.17.3-00 kubectl=1.17.3-00

apt-mark hold kubelet=1.17.3-00 kubeadm=1.17.3-00 kubectl=1.17.3-00

 

3、查看和拉取其他组件的镜像

kubeadm config images list

以1.16.0为例,依赖如下:
k8s.gcr.io/kube-apiserver:v1.16.0
k8s.gcr.io/kube-controller-manager:v1.16.0
k8s.gcr.io/kube-scheduler:v1.16.0
k8s.gcr.io/kube-proxy:v1.16.0
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.15-0
k8s.gcr.io/coredns:1.6.2

 

#拉取镜像(arm)

docker pull cruse/kube-apiserver-arm64:v1.16.0
docker pull cruse/kube-controller-manager-arm64:v1.16.0-beta.1
docker pull cruse/kube-scheduler-arm64:v1.16.0-rc.1
docker pull cruse/kube-proxy-arm64:v1.16.0-rc.2
docker pull cruse/pause-arm64:3.1
docker pull cruse/etcd-arm64:3.3.15-0
docker pull coredns/coredns:1.6.2


 #拉取镜像x86_64
 

docker pull cruse/kube-apiserver-amd64:v1.16.0-rc.2
docker pull cruse/kube-controller-manager:v1.16.0-rc.2
docker pull cruse/kube-scheduler:v1.16.0-rc.2
docker pull cruse/kube-proxy:v1.16.0-rc.2
docker pull cruse/pause:3.1
docker pull cruse/etcd:3.3.15-0
docker pull coredns/coredns:1.6.2

在国内拉镜像也是痛苦的事情,可以尝试用国内镜像

docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.0

然后在通过docker命令修改tag和删除无用的tag

4、k8s安装前,环境配置

关闭虚拟内容及防火墙

 
swapoff -a
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state

#修改主机名
hostnamectl set-hostname bc-linux-3
#允许包转发
cat <<EOF> /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

modprobe br_netfilter
##确认
sysctl --system

如果配置了代理,可能需要禁用代理

unset http_proxy
unset https_proxy

5、开始初始化k8s

## xx.xx.xx.xx为master机器的物理ip,192.168.0.0为calico网络插件的默认网段
kubeadm init --kubernetes-version=v1.17.3 --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=xx.xx.xx.xx

6、成功后,根据提示,需要复制一些配置文件

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

7、安装calico插件,提前准备好镜像(k8s1.16.0使用的calico3.8.9的版本),网络好的或者使用docker私有仓,里面有相关镜像的可以跳过此步骤

docker pull calico/cni:v3.8.9
docker pull calico/node:v3.8.9
docker pull calico/kube-controllers:v3.8.9
docker pull calico/pod2daemon-flexvol:v3.8.9

#安装calico网络插件


kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

8、如果需要在master节点删跑任务,可以解除隔离

#解除master隔离
kubectl taint nodes --all node-role.kubernetes.io/master-

#恢复隔离
kubectl taint node k8s-master node-role.kubernetes.io/master=""

9、如果有新节点加入集群

新节点只需要安装步骤2中三个服务,然后在主节点上执行一下命令,获取加入集群的token

kubeadm token create --print-join-command

10、如果需要在worker节点上执行kubectl命令,需要配置一下环境变量,为kubectl配置相应的权限

export KUBECONFIG=/etc/kubernetes/kubelet.conf

11、worker节点需要打上对应的标签,以表示worker角色

kubectl label node  nodename node-role.kubernetes.io/worker=worker

12、如需移除集群

kubectl drain nodename --delete-local-data --force --ignore-daemonsets

kubectl delete node nodename

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页