内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
本文档风哥主要介绍Kubernetes生产环境的部署方法,包括集群规划、安装配置、应用部署等内容。
Part01-基础概念与理论知识
1.1 Kubernetes架构
kube-apiserver:API服务器
kube-controller-manager:控制器管理器
kube-scheduler:调度器
etcd:键值存储
# Worker节点组件
kubelet:节点代理
kube-proxy:网络代理
Container Runtime:容器运行时
Part02-生产环境规划与建议
2.1 集群规划
3个Master节点(高可用)
3个Worker节点
# 生产集群
3个Master节点(负载均衡)
多个Worker节点(按需扩展)
独立的etcd集群(可选)
Part03-生产环境项目实施方案
3.1 使用kubeadm部署
$ sudo dnf install kubeadm kubelet kubectl -y
# 初始化Master节点
$ sudo kubeadm init –pod-network-cidr=10.244.0.0/16
# 配置kubectl
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 安装网络插件
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# Worker节点加入集群
$ sudo kubeadm join 192.168.1.10:6443 –token abc123.def456 \
–discovery-token-ca-cert-hash sha256:xxx
# 查看集群状态
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 10m v1.28.0
node1 Ready
node2 Ready
3.2 部署应用
$ kubectl create deployment nginx –image=nginx
deployment.apps/nginx created
# 扩展副本
$ kubectl scale deployment nginx –replicas=3
deployment.apps/nginx scaled
# 创建Service
$ kubectl expose deployment nginx –port=80 –target-port=80 –type=NodePort
service/nginx exposed
# 查看应用状态
$ kubectl get pods,svc
NAME READY STATUS RESTARTS AGE
pod/nginx-6799fc88d8-abc12 1/1 Running 0 1m
pod/nginx-6799fc88d8-def34 1/1 Running 0 1m
pod/nginx-6799fc88d8-ghi56 1/1 Running 0 1m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1
service/nginx NodePort 10.96.100.100
Part04-生产案例与实战讲解
4.1 案例:Web应用部署
# 1. 创建命名空间
$ kubectl create namespace webapp
# 2. 创建Deployment
$ cat > webapp-deployment.yaml << 'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp
namespace: webapp
spec:
replicas: 3
selector:
matchLabels:
app: webapp
template:
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: nginx:latest
ports:
- containerPort: 80
EOF
$ kubectl apply -f webapp-deployment.yaml
# 3. 创建Service
$ cat > webapp-service.yaml << 'EOF'
apiVersion: v1
kind: Service
metadata:
name: webapp
namespace: webapp
spec:
selector:
app: webapp
ports:
- port: 80
targetPort: 80
type: LoadBalancer
EOF
$ kubectl apply -f webapp-service.yaml
# 4. 验证部署
$ kubectl get all -n webapp
风哥提示:
Part05-风哥经验总结与分享
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
