Kubernetes (K8s) 是一个用于自动部署、扩展和管理容器化应用程序的开源平台。在安装 K8s 后,还需要进行一些配置,以确保集群能够正常工作并满足您的实际需求。本文将详细介绍 K8s 安装后的配置步骤,并提供相应的代码示例。

一、安装 K8s
在开始配置之前,首先需要按照官方文档完成 K8s 的安装。根据不同的操作系统和版本,安装方式可能会有所不同。这里以使用 kubeadm 工具在 Ubuntu 上安装 K8s 为例。以下是安装 K8s 的基本步骤:

步骤 | 命令/操作
-------------|-------------
1. 安装 Docker | sudo apt-get update
sudo apt-get install -y docker.io
2. 安装 kubeadm、kubelet 和 kubectl | sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
3. 初始化 Master 节点 | sudo kubeadm init --pod-network-cidr=192.168.0.0/16
4. 配置 kubectl | mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

二、配置 K8s
配置 K8s 包括添加节点网络插件、设置网络代理等操作。下面我们将一步步地进行配置。

1. 添加网络插件
网络插件负责为集群中的 Pod 提供网络功能,常用的网络插件有 Calico、Flannel 等。选择一种适合自己的插件,并按照其官方文档进行安装。以下是使用 Calico 插件的示例代码:

```bash
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
```

这段代码将下载并部署 Calico 插件的相关资源。

2. 设置网络代理
如果您的环境中有代理服务器,需要对 K8s 集群进行相应的配置才能正常访问外部网络。以下是设置网络代理的示例代码:

```bash
kubectl -n kube-system create configmap kube-proxy-config --from-file=kubeconfig=/path/to/kube-proxy-kubeconfig.yaml
kubectl set env daemonset -n kube-system kube-proxy KUBE_PROXY_ARGS="--config=/var/lib/kube-proxy/config.conf"
```

这段代码将创建一个配置文件,并将配置文件挂载到 kube-proxy 容器中,以便 kube-proxy 在启动时使用指定的配置文件。

3. 配置部署策略
K8s 默认使用 Round-robin 负载均衡策略将请求分发到后端 Pod,但是某些场景下可能需要使用其他负载均衡策略,比如 Session Affinity。以下是配置 Session Affinity 的示例代码:

```bash
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer --name=nginx-service --session-affinity=ClientIP
```

这段代码将创建一个名为 nginx 的 Deployment,并暴露成一个 Service,其中 session-affinity=ClientIP 表示采用客户端 IP 地址来进行会话保持。

4. 配置存储
在 K8s 中,可以使用 Persistent Volumes (PV) 和 Persistent Volume Claims (PVC) 来管理存储。以下是配置存储的示例代码:

```bash
kubectl apply -f persistent-volume.yaml
kubectl apply -f persistent-volume-claim.yaml
```

这段代码将创建一个持久化存储卷(persistent volume),以及一个与之绑定的持久化存储卷声明(persistent volume claim)。

以上是对 K8s 安装后的常见配置进行了一些示例,根据实际需求可进行相应的调整和扩展。希望这能帮助到您初学者在 K8s 的配置过程中遇到的困惑。

参考文献:
- Kubernetes官方文档:https://kubernetes.io/
- Calico官方文档:https://docs.projectcalico.org/