温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

centos中如何安装kubernetes

发布时间:2021-11-15 16:57:23 来源:亿速云 阅读:144 作者:小新 栏目:云计算

这篇文章主要介绍了centos中如何安装kubernetes,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

centos7内核版本过低,有些kubernetes组件对内核要求高(如rook-ceph),所以推介ubuntu20.04 https://my.oschina.net/u/160697/blog/4416873

参考 https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

环境 centos7以上

使用阿里源:

cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
# 更新系统
yum update -y
# 禁止防火墙
systemctl stop firewalld
systemctl disable firewalld
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

#安装指定版本
#yum install -y kubelet-1.20.5-0 kubeadm-1.20.5-0 kubectl-1.20.5-0 --disableexcludes=kubernetes
systemctl enable --now kubelet

一些 RHEL/CentOS 7 的用户曾经遇到过问题:由于 iptables 被绕过而导致流量无法正确路由的问题。您应该确保 在 sysctl 配置中的 net.bridge.bridge-nf-call-iptables 被设置为 1。

cat <<EOF >  /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOFsysctl --system
  • 安装docker-ce https://docs.docker.com/install/linux/docker-ce/centos/

# 若您安装过docker,需要先删掉,之后再安装依赖:
sudo yum remove docker docker-common docker-selinux docker-engine
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
systemctl enable docker
systemctl start docker

容器运行时 https://kubernetes.io/zh/docs/setup/production-environment/container-runtimes/

cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://hub-mirror.c.163.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF
# 重启 Docker
systemctl daemon-reload
systemctl restart docker

初始化(kubernetes-version版本号需修改为yum安装对应的版本)

kubeadm init \
--apiserver-advertise-address=192.168.1.10 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.18.3 \
--pod-network-cidr=10.244.0.0/16

有问题。可重置

kubeadm reset && systemctl restart kubelet
rm /etc/kubernetes/ -fR
rm $HOME/.kube -fR
rm /var/lib/etcd -fR
rm /etc/cni/net.d -fR

没有问题的话。有以下成功标志:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

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

kubeadm join 192.168.1.10:6443 --token zj9sed.nsv0mr8ym228qpq6 \
    --discovery-token-ca-cert-hash sha256:df276fa7c8551cb914deeb3a73c9705a5f77081c092e2dbd47c29a06a50f6ce8

说明1,执行以下操作,已经写得很清楚了。

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

测试环境使用单机集群,可以使用如下命令,让 master 上也可以有 pod

kubectl taint nodes --all node-role.kubernetes.io/master-

说明2,你需要安装一个网络(You should now deploy a pod network to the cluster.) 我选择flannel, 简单好用。 参考此页面 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

测试是否安装成功,看READY是不是1/1, 状态是否为Running

kubectl get pods -A

生成不过期的token

# 拷贝输出结果,在work节点执行
kubeadm token create --ttl 0 --print-join-command

在另外一节点。安装k8s, docker, 执行除了kubeadm init的脚本。并执行以下,加入到集群中

关闭swap

swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

说明3. 安装node节点

kubeadm join 192.168.1.10:6443 --token zj9sed.nsv0mr8ym228qpq6 \
    --discovery-token-ca-cert-hash sha256:df276fa7c8551cb914deeb3a73c9705a5f77081c092e2dbd47c29a06a50f6ce8

说明4. 如在slave节点要使用kubectl。需要在子节点上执行

mkdir -p $HOME/.kube/
#192.168.1.10为master节点,根据实际情况替换自己的节点
scp root@192.168.1.10:/etc/kubernetes/admin.conf $HOME/.kube/config

查看节点状态

#master上执行
kubectl get node

感谢你能够认真阅读完这篇文章,希望小编分享的“centos中如何安装kubernetes”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI