引言
跟著雲打算跟容器技巧的疾速開展,Kubernetes(K8s)已成為雲原生時代的核心引擎。本文將為妳具體介紹如何在CentOS上輕鬆上手Kubernetes,並實戰容器編排,開啟高效運維之旅。
情況籌備
1. 體系請求
- 操縱體系:CentOS 7
- 硬體請求:2核CPU,4GB內存
- 網路請求:公網IP或許內網拜訪
2. 體系設置
- 更新體系:
sudo yum update -y
- 安裝Docker:
sudo yum install -y docker
- 啟動Docker效勞:
sudo systemctl start docker
- 設置Docker開機自啟:
sudo systemctl enable docker
Kubernetes集群搭建
1. 安裝kubeadm、kubelet跟kubectl
- 安裝kubeadm:
sudo yum install -y kubeadm
- 安裝kubelet:
sudo yum install -y kubelet
- 安裝kubectl:
sudo yum install -y kubectl
2. 初始化集群
- 設置集群稱號:
export CLUSTER_NAME=myk8s
- 初始化集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
- 將kubeconfig文件增加到以後用戶:
sudo cp /etc/kubernetes/admin.conf ~/$USER/.kube/config
3. 安裝網路插件
- 安裝Flannel網路插件:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
容器編排實戰
1. 安排Nginx效勞
創建Nginx安排文件:`cat <
nginx-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx
spec: containers:
- name: nginx image: nginx:1.17.1 ports: - containerPort: 80
EOF`
安排Nginx效勞:
kubectl apply -f nginx-deployment.yaml
2. 安排MySQL效勞
創建MySQL安排文件:`cat <
mysql-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: mysql-deployment spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql
spec: containers:
- name: mysql image: mysql:5.7 ports: - containerPort: 3306
EOF`
安排MySQL效勞:
kubectl apply -f mysql-deployment.yaml
3. 安排Ingress把持器
創建Ingress把持器安排文件:`cat <
ingress-nginx-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: ingress-nginx spec: replicas: 2 selector: matchLabels: app: ingress-nginx template: metadata: labels: app: ingress-nginx
spec: containers:
- name: nginx image: nginx-ingress-controller:0.27.0 ports: - containerPort: 80
EOF`
安排Ingress把持器:
kubectl apply -f ingress-nginx-deployment.yaml
4. 設置Ingress規矩
創建Ingress規矩文件:`cat <
ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress spec: rules: - host: nginx.example.com
http:
paths:
- path: / pathType: Prefix backend: service: name: nginx-deployment port: number: 80 EOF`
- host: nginx.example.com
http:
paths:
利用Ingress規矩:
kubectl apply -f ingress.yaml
總結
本文具體介紹了在CentOS上輕鬆上手Kubernetes,並實戰容器編排的過程。經由過程本文的進修,妳可能開啟雲原生時代高效運維之旅,為妳的企業構建牢固、堅固的容器化利用。