Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装

本文介绍了如何在Ubuntu 18虚拟机上搭建Kubernetes集群,包括Docker的安装、Kubeadm配置、节点初始化、Pod网络部署,以及Helm的安装和使用。在集群部署过程中,详细讲述了遇到的问题及解决方案,如初始化时的IP冲突、Dashboard访问故障等,并展示了如何使用Helm部署Nginx Ingress和Dashboard。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先说一下我的环境, 我是在windows 10 上面建了一个ubuntu18的虚拟机,同时由于某些原因 不受网络限制, 所以安装比较顺利。

Install 

1.安装并启用 Docker 

sudo apt install docker.io
sudo systemctl enable docker
docker --version

2.添加 Kubernetes  signing key 和Repository

sudo apt install curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

3.安装Kubeadm

sudo apt install kubeadm
kubeadm version
#常用命令
重启kubelet服务:
systemctl daemon-reload
systemctl restart kubelet
sudo systemctl restart kubelet.service

sudo systemctl daemon-reload
sudo systemctl stop kubelet
sudo systemctl enable kubelet
sudo systemctl start kubelet

4.禁用  swapoff

sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
#永久关闭  vim /etc/fstab  注释掉最后一行的swap

以上的指令我只在一台Ubuntu上执行的(如果你有多台计算机,需要在所有的计算机上执行以上指令,我这里是通过拷贝虚拟机来实现的)

5.准备2台虚拟机k8s-master和k8s-node(我这里把上面的计算机命名为 k8s_master ,copy它并命名为k8s_node)

sudo hostnamectl set-hostname k8s-master #在k8s-master 上执行 IP:192.168.255.229
sudo hostnamectl set-hostname k8s-node #k8s-node 上执行  IP:192.168.255.230

Deploy

1.在master上初始化 Kubernetes ,使用kubeadm config print init-defaults可以打印集群初始化默认的使用的配置,使用kubeadm默认配置初始化的集群,会在master节点打上node-role.kubernetes.io/master:NoSchedule的污点,阻止master节点接受调度运行工作负载。这里测试环境只有两个节点,所以将这个taint的effect从NoSchedule改为PreferNoSchedule 还有就是修订kubernet版本1.15.2

apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.100.7
  bindPort: 6443
nodeRegistration:
  taints:
  - effect: PreferNoSchedule
    key: node-role.kubernetes.io/master
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.15.2
networking:
  podSubnet: 10.244.0.0/16
#sudo kubeadm init --pod-network-cidr=192.168.255.229/2
kubeadm init --config kubeadm.yaml #--ignore-preflight-errors=Swap

sudo kubeadm init --pod-network-cidr=192.168.100.0/2 这里不应该用现有计算机的ip  这里有解决方案 https://stackoverflow.com/questions/52273029/kubernetes-dashboard-pod-is-crashing-again-and-again

如果执行中遇到detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd"

请参考Container runtimes执行

# Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "insecure-registries":["192.168.100.20:80"] 
}
EOF

mkdir -p /etc/systemd/system/docker.service.d
#我顺便吧docker的私有仓库也加在里面
# Restart docker.
systemctl daemon-reload
systemctl restart docker

如果遇到port 10251 and 10252 are in use  错误请执行 netstat -lnp | grep 1025 然后kill 进程ID

2在master节点上执行如下:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
#检查 master 
kubectl get nodes

3.Deploy a Pod Network  &  view the status

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl get pods --all-namespaces
sudo kubectl get nodes

4.add slave node 

在k8s-node上执行

kubeadm join 192.168.254.229:6443 --token ewlb93.v0ohocpvncaxgl16  --discovery-token-ca-cert-hash sha256:2522834081168fbe4b5b05854b964e76f1ea8bac6f8fc5e2be21c93c6a27c427 

在k8s-master上检查节点信息:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值