天天看点

Linux日常小技巧kubernetes安装

作者:风趣运维工程狮

Kubernetes是一个非常强大和灵活的容器编排系统,今天给大家简单介绍一下kubernetes的安装过程基于kubeadm,是日常安装k8s的一种方式,

前期准备工作:

1.cat cat /etc/redhat-release 检查系统版本必须在centos7.5以上

2.域名解析添加hosts文件中添加各个集群的IP和主机名称。

vim  /etc/hosts
192.168.221.* master
192.168.221.* node1
192.168.221.* node2           

3.时间同步

systemctl start chronyd

4.关闭firewalld和iptables

[root@master /]# systemctl stop firewalld
[root@master /]# systemctl disable firewalld
[root@master /]# systemctl stop iptables
[root@master /]# systemctl disable iptables
systemctl disable firewalld           

5关闭seliunx

getenforce 提示Enforcing 说明已经开启了

vim /etc/selinux/config(需要重新启动)

6.禁止swap分区。

vim /etc/fstab

注释掉最后一行

7.修改liunx内核参数

将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
modprobe br_netfilter
lsmod | grep br_netfilter
sysctl --system           

8.安装docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

安装指定版本的docker

yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7
mkdir /etc/docker cat <<EOF >/etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://du3ia00u.mirror.aliyuncs.com"] } EOF
systemctl enable docker && systemctl start docker
docker version
sudo systemctl daemon-reload
sudo systemctl restart docker           

9.安装 Kubernetes 组件

使用 kubeadm 工具可以非常方便地部署 Kubernetes 集群。安装流程如下:

  • 安装 kubeadm、kubelet 和 kubectl:
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF           

拉取组件:

yum install --setopt=obsoletes=0 kubelet-1.18.0-0 kubeadm-1.18.0 kubectl-1.18.0 -y
yum install --setopt=obsoletes=0 kubelet-1.18.0-0 kubeadm-1.18.0-0 kubectl-1.18.0-0 -y           
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

systemctl enable kubelet  systemctl start kubelet
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0 --disableexcludes=kubernetes           
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system           

拉取各个组件的插件

kube-apiserver:v1.18.20
kube-controller-manager:v1.18.20
kube-scheduler:v1.18.20
kube-proxy:v1.18.20
pause:3.2
etcd:3.4.3-0
coredns:1.6.7
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.20           

打标签

docker tag 27f8b8d51985 registry.aliyuncs.com/google_containers/kube-proxy:v1.18.20
docker tag 7d8d2960de69 registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.20
docker tag e7c545a60706 registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.20
docker tag a05a1a79adaa registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.20
docker tag 80d28bedfe5d registry.aliyuncs.com/google_containers/pause:3.2
docker tag 67da37a9a360 registry.aliyuncs.com/google_containers/coredns:1.6.7
docker tag 303ce5db0e90 registry.aliyuncs.com/google_containers/etcd:3.4.3-0           

部署master节点

kubeadm init \
--apiserver-advertise-address=192.168.221.* \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.20 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16           
  • 安装完成后,可以使用下面的命令查看 kubeadm 版本:
kubeadm version           
  • 加入节点
在其他节点上运行以下命令以加入主节点:
sudo kubeadm join [主节点 IP]:[端口] --token [token] --discovery-token-ca-cert-hash sha256:[hash]           
  • 安装网络插件
  • Kubernetes 默认情况下使用容器网络,需要安装相关的网络插件才能在不同节点之间通信。可以使用 Calico、Flannel 或者 Canal 等网络插件。这里以 Calico 为例:
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml           

10.安装完毕后,可以使用如下命令检查集群状态:

kubectl get nodes
           

输出类似以下信息:

NAME          STATUS   ROLES    AGE   VERSION
master-node   Ready    master   36d   v1.18.2
worker-node1  Ready    <none>   36d   v1.18.2
worker-node2  Ready    <none>   36d   v1.18.2           

整理不易欢迎点赞收藏,转发,关注我,每天分享运维小知识。

继续阅读