这篇文章主要介绍了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”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。