CentOS 7 通过kubeadm单机安装Kubernetes与Dashboard
文章目录1.安装准备1.1 安装依赖1.2 安装docker1.3 系统基础设置2. 安装kubeadmkubelet kubectl2.1 配置yum源2.2 安装kubeadm&kubelet&kubectl2.3 统一k8s和docker的cgroup2.4 启动并设置开机自启动kubelet2.5 kubeadm init初始化master2.6 查看Node状态3. 安装
文章目录
1. 安装准备
1.1 安装依赖
yum -y update
yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
1.2 安装docker
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置docker仓库
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
设置阿里云镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["替换成自己的实际地址"]
}
EOF
镜像加速器可以免费申请,登录阿里云即可申请、
刷新配置
sudo systemctl daemon-reload
安装docker
yum install -y docker-ce docker-ce-cli containerd.io
可以指定docker版本,如:
yum install -y docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io
1.3 系统基础设置
# (1)关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
# (2)关闭selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# (3)关闭swap
swapoff -a
sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
# (4)配置iptables的ACCEPT规则
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
# (5)设置系统参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
2. 安装kubeadm kubelet kubectl
2.1 配置yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
2.2 安装kubeadm&kubelet&kubectl
yum install -y kubeadm kubelet kubectl
2.3 统一k8s和docker的cgroup
- 注意,推荐更改docker的cgroup为systemd,若修改k8s的,可能会出现错误
# docker
vi /etc/docker/daemon.json
"exec-opts": ["native.cgroupdriver=systemd"],
systemctl restart docker
2.4 启动并设置开机自启动kubelet
systemctl enable kubelet && systemctl start kubelet
- 此处kubelet会报错,无法正常启动,这是因为还没初始化集群,可以暂时不管
2.5 kubeadm init初始化master
kubeadm init --image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=192.168.0.0/16
若要采用CNI网络插件,pod-network-cidr要配置为192.168.0.0/16
2.6 查看Node状态
kubectl get node
若命令报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?
则为环境变量配置问题,输入以下命令即可:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
此时若没有安装CNI插件,则Node节点状态应该为NotReady
3. 安装CNI网络插件
执行以下命令会安装CNI插件
kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml"
待CNI插件的POD运行状态为Running时,Node状态应该为Ready
4. 安装DashBoard
4.1 安装dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
4.2 修改资源
默认情况下,kubernetes-dashboard的service类型为ClusterIP。为了能从外部访问Dashboard,所以开放为NodePort类型
kubectl get services -n kubernetes-dashboard # 获取dashboard服务名
4.3更改service类型
kubectl edit service kubernetes-dashboard -n kubernetes-dashboard
将spec.type从ClusterIP改为NodePort,保存并退出
即可通过30074访问dashboard
更多推荐
所有评论(0)