目录
集群管理的必要性
容器时代已经到来,如何批量管理容器是一项至关重要的技能
单机安装教程
https://blog.csdn.net/weixin_41632383/article/details/107878329
安装网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
搭建dashbroad
下载 部署 容器
recommended.yaml 内容
资源下载请到 https://github.com/mengkaibulusili/k8sConfigFils
重置集群
kubeadm reset
rm -rf $HOME/.kube
kubeadm init --pod-network-cidr=10.0.0.0/24
#解决错误 The connection to the server localhost:8080 was refused
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
应用 yaml
kubectl apply -f recommended.yaml
创建配置用户的文件
adduser.yaml
ClusterRoleBinding.yaml
配置登录token
// 创建用户
kubectl apply -f C:\Users\73444\Desktop\kbs\dashbroad\adduser.yaml
// 绑定用户和服务
kubectl apply -f C:\Users\73444\Desktop\kbs\dashbroad\ClusterRoleBinding.yaml
// 生成并查看秘钥
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | sls admin-user | ForEach-Object {
$_ -Split '\s+' } | Select -First 1)
output:
Name: admin-user-token-h9lvx
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: 61e3d84e-b871-469f-abb7-b50c8a325d76
Type: kubernetes.io/service-account-token
Data
====
token: eyJhbGciOiJ
ca.crt: 1025 bytes
namespace: 20 bytes
访问 dashbroad
kubectl proxy
然后访问网址
输入密匙即可
在搭建好 minikube 的基础上进行,nginx 的服务暴露
热升级,热扩容 介绍
但多个服务子节点,进行升级以及扩容时,k8s 会平滑的进行服务迁移,只需要在配置文件中修改 对应的配置即可
部署 升级 扩容 nginx 服务
#提交一个 nginx deployment;
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
#升级 nginx deployment;
kubectl apply -f https://k8s.io/examples/application/deployment-update.yaml
#扩容 nginx deployment。
kubectl apply -f https://k8s.io/examples/application/deployment-scale.yaml
查看启动的nginx pods
kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deployment-574b87c764-hn9p5 1/1 Running 0 56m
nginx-deployment-574b87c764-lc9h2 1/1 Running 0 56m
查看nginx deployment
kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 2/2 2 2 55m
暴露nginx service
kubectl expose deployment/nginx-deployment --type="NodePort" --port 80
查看nginx service
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 26h
nginx-deployment NodePort 10.96.0.88 <none> 80:31174/TCP 26m
删除service
kubectl delete service nginx-deployment
固定service 的 对外端口
apiVersion: v1 # for versions before 1.9.0 use apps/v1beta2
kind: Service
metadata:
name: nginx-service
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
# 固定端口数值,必须是配置文件范围内
nodePort: 30100
type: NodePort
selector:
app: nginx
执行
kubectl create -f C:\Users\73444\Desktop\service.yaml