centos部署单机版k8s
时间: 2023-09-12 20:10:52 浏览: 133
1. 安装Docker
CentOS 7默认使用yum安装Docker。
```
sudo yum install -y docker
```
启动Docker服务。
```
sudo systemctl start docker
```
设置开机自启。
```
sudo systemctl enable docker
```
2. 安装kubeadm、kubectl和kubelet
使用yum安装kubeadm、kubectl和kubelet。
```
sudo tee /etc/yum.repos.d/kubernetes.repo <<-'EOF'
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubelet kubeadm kubectl
```
启动kubelet服务。
```
sudo systemctl start kubelet
```
设置开机自启。
```
sudo systemctl enable kubelet
```
3. 初始化kubeadm
使用kubeadm初始化kubernetes集群。
```
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-cert-extra-sans=<your master node IP>
```
其中,`--pod-network-cidr`指定Pod网络地址段,`--apiserver-cert-extra-sans`指定额外的API Server主机名或IP地址,通常指定集群的Master节点IP地址,例如:
```
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-cert-extra-sans=192.168.1.100
```
初始化完成后,执行以下命令将`kubectl`配置文件复制到当前用户目录下。
```
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
```
4. 安装网络插件
安装网络插件,以便Pod之间可以相互通信。
这里我们选择使用Flannel作为网络插件。
```
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
```
5. 部署应用
部署一个简单的应用,例如Nginx。
```
kubectl run nginx --image=nginx --port=80
```
创建一个Service,将Pod暴露出去。
```
kubectl expose deployment/nginx --port=80 --type=NodePort
```
查看Service的访问端口。
```
kubectl get svc
```
访问Nginx应用,使用浏览器访问Node的IP地址和Service的访问端口即可。
6. 部署Dashboard
可以使用Dashboard来管理集群。
```
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml
```
创建一个ServiceAccount。
```
kubectl create serviceaccount dashboard -n default
```
创建一个ClusterRoleBinding,将ServiceAccount绑定到cluster-admin角色。
```
kubectl create clusterrolebinding dashboard-admin -n default --clusterrole=cluster-admin --serviceaccount=default:dashboard
```
获取Dashboard的访问令牌。
```
kubectl -n default describe secret $(kubectl -n default get secret | grep dashboard | awk '{print $1}')
```
启动代理。
```
kubectl proxy
```
在浏览器中访问以下地址。
```
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
```
使用上一步获取的访问令牌登录Dashboard即可。
阅读全文
相关推荐

















