Openshift:可靠的Kubernetes发行版容器

Kubernetes安装手册

2020-05-06  本文已影响0人  潘晓华Michael
Kuberntes安装

Kubernetes在2014年开源后,很快便占据了容器编排的主导地位,成为容器编排的事实标准。那么Kubernetes的安装是了解它的第一步。目前有非常多的工具方法来实现Kubernetes的安装,收集了一些如下。

使用kubeadm部署单机版k8s

Master节点安装

  1. 机器准备
  1. 准备工作
$ systemctl stop firewalld
$ systemctl disable firewalld
$ setenforce 0
$cat /etc/selinux/config
...
SELINUX=disabled
...
$ hostnamectl set-hostname master1
  1. 添加k8s yum源
[k8s]
name=k8s
baseurl=https://mirrors.tuna.tsinghua.edu.cn/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
  1. 确保 iptables 工具不使用 nftables 后端
$ update-alternatives --set iptables /usr/sbin/iptables-legacy
  1. 安装软件
$ yum install -y docker kubelet kubeadm kubectl kubernetes-cni
$ echo "KUBELET_EXTRA_ARGS=--cgroup-driver=systemd" > /etc/sysconfig/kubelet
  1. 关闭系统的Swap
$ swapoff -a
$ # 将/etc/fstab文件中的Swap注释掉
$ cat /etc/fstab
/dev/mapper/VolGroup00-LogVol00 /                       xfs     defaults        0 0
UUID=1539acb0-0589-4eae-a0a4-24566186e425 /boot                   xfs     defaults        0 0
#/dev/mapper/VolGroup00-LogVol01 swap                    swap    defaults        0 0
  1. 创建/etc/sysctl.d/k8s.conf文件,添加如下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness=0
  1. 启动docker与配置kubelet服务
systemctl start docker
systemctl enable docker
systemctl enable kubelet
  1. 对docker进行加速,在/etc/sysconfig/docker配置项中添加如下内容
--registry-mirror=https://r03u9tep.mirror.aliyuncs.com
  1. 使用hub.docker.com中的镜像,例如:docker.io/aiotceo/kube-apiserver
$ # 下载aiotceo镜像
$ kubeadm config images list | sed -e 's/^/docker pull /g' -e 's/k8s.gcr.io/docker.io\/aiotceo/g' -e 's/-0//g' | sh -x
$ #将aiotceo重新tag到k8s.gcr.io
$ docker images | grep aiotceo | awk '{print "docker tag " $1":"$2,$1":"$2}' | sed -e "s#docker.io/aiotceo#k8s.gcr.io#2" -e "s#3.4.3#3.4.3-0#2" | sh -x
$ #删除aiotceo镜像
$ docker images |grep aiotceo |awk '{print "docker rmi ", $1":"$2}' |sh -x 
  1. 初始化kube集群
$ kubeadm init
...
kubeadm join 10.0.2.15:6443 --token 8o8yv2.tv836s1jncmrwgsp \
    --discovery-token-ca-cert-hash sha256:d9d15b5905e8defc0ef6de294be5eff08d720ed9d98b8d6cb99d153bc7332e8e
  1. 创建管理员访问文件
$ mkdir -p $HOME/.kube
$ cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  1. 安装网络插件,例如calico
$ kubectl apply -f https://kuboard.cn/install-script/calico/calico-3.13.1.yaml
  1. 查看k8s状态
$ kubectl get node
NAME    STATUS   ROLES    AGE   VERSION
node1   Ready    master   14m   v1.18.2

添加计算节点

重复 0-9 步,完成环境准备,安装软件及下载镜像。

  1. kubeadm将计算节点加入集群
kubeadm join 10.0.2.15:6443 --token 8o8yv2.tv836s1jncmrwgsp \
    --discovery-token-ca-cert-hash sha256:d9d15b5905e8defc0ef6de294be5eff08d720ed9d98b8d6cb99d153bc7332e8e
  1. 查看k8s状态
$ kubectl get node
NAME    STATUS   ROLES    AGE   VERSION
node1   Ready    master   14m   v1.18.2
node2   Ready    <none>   30m   v1.18.2

补充说明:

  1. 安装时可以通过kubeadm config print init-defaults查看默认配置
$ kubeadm config print init-defaults
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 1.2.3.4
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: master1
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.18.0
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
scheduler: {}
  1. 使用kubeadm init --config可以指定kubeadm配置文件

参考文章

使用kubeadm安装kubernetes_v1.18.x
利用 kubeadm 创建高可用集群

上一篇下一篇

猜你喜欢

热点阅读