













https://www.kubernetes.org.cn/7189.html
使用kubeadm在Centos8上部署kubernetes1.18(三台机)
https://www.jianshu.com/p/ceaba6a87086
k8s1.20.1 集群安装(三台机)
https://blog.csdn.net/weixin_38320674/article/details/105781372
k8s1.18高可用集群安装-超详细中文官方文档(两台机)
打开“编辑-虚拟网络编辑器”,桥接至真实网卡

在VMware上安装Centos
选稍后安装,避开VMware的执行简易安装

设置硬件(按需设置),载入ISO文件,选VMnet0网络

进入系统,测试网络(可选)
查看本机ip addr(可以在真实主机上ping)ping外网测试

hostnamectl set-hostname k8s-master --static
vi /etc/sysconfig/network-scripts/ifcfg-ens33
PS:DNS是可选
BOOTPROTO="static"
ONBOOT="yes"
IPADDR="192.168.0.80"
NETMASK="255.255.255.0"
GATEWAY="192.168.0.1"
DNS1="119.29.29.29" # 腾讯DNS
DNS2="180.76.76.76" # 百度DNS
重启
关闭防火墙(可选)
systemctl stop firewalld && systemctl disable firewalld
关闭 dnsmasq(可选)
service dnsmasq stop && systemctl disable dnsmasq
vi /etc/fstab
注释行:/dev/mapper/cl-swap
删除冲突包(如有)
删除旧docker(如有)
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
下载/安装docker-ce
参考:https://docs.docker.com/engine/install/centos/
yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce docker-ce-cli containerd.io systemctl enable --now docker docker run hello-world # 测试(可选)
配置内核参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf <<EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
sysctl --system
参考:https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
参考:https://www.kubernetes.org.cn/7189.html
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-\$basearch 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 exclude=kubelet kubeadm kubectl EOF
setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
官方原话:
通过运行命令 setenforce 0 和 sed ... 将 SELinux 设置为 permissive 模式 可以有效地将其禁用。 这是允许容器访问主机文件系统所必需的,而这些操作时为了例如 Pod 网络工作正常。你必须这么做,直到 kubelet 做出对 SELinux 的支持进行升级为止。
如果你知道如何配置 SELinux 则可以将其保持启用状态,但可能需要设定 kubeadm 不支持的部分配置
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes systemctl enable --now kubelet
PS:kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环。
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
systemctl daemon-reload
systemctl restart docker
yum install -y tc
kubeadm init \
--apiserver-advertise-address=192.168.0.80 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.10.0.0/16 --pod-network-cidr=10.122.0.0/16
kubeadm init出错参考:https://stackoverflow.com/a/67610920
mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config
vi /etc/profile
在底部添加:export KUBECONFIG=/etc/kubernetes/admin.conf
source <(kubectl completion bash)
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
---
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 30000
selector:
k8s-app: kubernetes-dashboard
保存,执行下面命令
kubectl apply -f recommended.yaml
kubectl delete -f recommended.yaml
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
kubectl get pod --all-namespaces
# 查看凭证 kubectl -n kubernetes-dashboard get secret # 获取token(注意替换) kubectl describe secrets -n kubernetes-dashboard kubernetes-dashboard-token-t4hxz | grep token | awk 'NR==3{print $2}'
在真实主机打开浏览器:https://192.168.0.80:30000/,粘贴上面复制的token登录
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。