K8s单台部署

单机k8s环境
基本配置
内容 参数
操作系统 centos7
机器环境 VMware虚拟机
部署目标 Nginx任意版本

虚拟机配置
内容 参数
网卡模式 NAT
CPU核心数 2
内存 4G

基本安装
安装docker
环境准备
[root@ruozedata001 yum.repos.d]# rpm -qa|grep docker
docker-ce-cli-18.09.7-3.el7.x86_64
docker-ce-18.09.7-3.el7.x86_64
[root@ruozedata001 yum.repos.d]# rpm -e docker-ce-cli-18.09.7-3.el7.x86_64
error: Failed dependencies:
docker-ce-cli is needed by (installed) docker-ce-3:18.09.7-3.el7.x86_64
[root@ruozedata001 yum.repos.d]# rpm -e docker-ce-3:18.09.7-3.el7.x86_64
/usr/bin/dockerd has not been configured as an alternative for dockerd
[root@ruozedata001 yum.repos.d]# rpm -e docker-ce-cli-18.09.7-3.el7.x86_64
[root@ruozedata001 yum.repos.d]# rpm -qa|grep docker
[root@ruozedata001 yum.repos.d]# ll /var/lib/docker/
[root@ruozedata001 yum.repos.d]# rm -rf /var/lib/docker/* 这一步一定不要忘
[root@ruozedata001 yum.repos.d]# rm /etc/yum.repos.d/docker*.repo
加粗样式

拉取镜像

// 查看kubeadm镜像
kubeadm config images list

// 结果
k8s.gcr.io/kube-apiserver:v1.22.1
k8s.gcr.io/kube-controller-manager:v1.22.1
k8s.gcr.io/kube-scheduler:v1.22.1
k8s.gcr.io/kube-proxy:v1.22.1
k8s.gcr.io/pause:3.5
k8s.gcr.io/etcd:3.5.0-0
k8s.gcr.io/coredns/coredns:v1.8.4

// 执行如下脚本(没有FQ的同学只能通过阿里云镜像或者其他镜像)
for i in kubeadm config images list; do
imageName=KaTeX parse error: Expected '}', got '#' at position 3: {i#̲k8s.gcr.io/} do…imageName
docker tag registry.aliyuncs.com/google_containers/ i m a g e N a m e k 8 s . g c r . i o / imageName k8s.gcr.io/ imageNamek8s.gcr.io/imageName
docker rmi registry.aliyuncs.com/google_containers/$imageName
done;
开机启动 && 启动服务
systemctl enable kubelet && systemctl start kubelet

初始化安装:
kubeadm init

报错:
重新链接新的终端
初始化时:修改/var/lib/kubelet/config.yaml
修改cgroupDriver: systemd为cgroupfs
sed -i s/systemd/cgroupfs/g /var/lib/kubelet/config.yaml
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

开启单机模式:
kubectl taint nodes --all node-role.kubernetes.io/master-

安装网卡插件:
kubectl apply -f “https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d ‘\n’)”

完成后查看集群:

k8s增加命令tab功能
安装
yum install -y bash-completion
生效
source /usr/share/bash-completion/bash_completion
设置
source <(kubectl completion bash)
变量
echo “source <(kubectl completion bash)” >> ~/.bashrc

安装nginx测试
kubectl create deployment nginx --image=nginx

kubectl expose deployment nginx --port=80 --type=NodePort

命令删除pod:
1、先删除pod
2、再删除对应的deployment
否则只是删除pod是不管用的,还会看到pod,因为deployment.yaml文件中定义了副本数量
kubectl delete deployment nginx -n default

Kubectl delete svc nginx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kubernetes (K8s) 是一个开源容器编排平台,用于自动化部署、扩展和管理容器化应用程序。要在 Kubernetes 集群中部署单机 Kafka(Apache Kafka),你需要了解以下几个步骤: 1. **安装Kafka**: 首先,你需要在一台机器上安装 Apache Kafka。你可以从 Kafka 官方网站下载二进制包,然后按照官方文档配置和启动。 2. **创建Deployment** 或者 **StatefulSet**: 在K8s中,你可以使用 Deployment 对象来滚动更新应用,或使用 StatefulSet 来为每个实例分配稳定的网络名称(对于持久化的生产者/消费者群组)。模板文件通常包含 Kafka 的环境变量(如 `KAFKA_BROKER_ID`)和容器镜像信息。 ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: kafka-deployment spec: replicas: 1 selector: matchLabels: app: kafka template: metadata: labels: app: kafka spec: containers: - name: kafka image: confluentinc/cp-kafka:latest env: - name: KAFKA_BROKER_ID value: "0" ports: - containerPort: 9092 ``` 3. **配置服务** (Service): 创建一个 Service 对象来暴露集群内部的 Kafka 实例。这将提供一个外部访问点,并根据你的需求选择负载均衡策略。 ```yaml apiVersion: v1 kind: Service metadata: name: kafka- name: kafka-port port: 9092 targetPort: 9092 ``` 4. **验证部署** 和 **访问**:使用kubectl命令行工具检查资源是否已成功部署并可用。你可以通过 `kubectl get pods` 查看 pod 状态,通过 `kubectl get services` 查看服务状态。 5. **注意安全性和权限**:确保你的 K8s 集群和 Kafka 服务之间具有正确的网络规则和安全配置,比如使用 ingress controller 或者设置相应的 RBAC 规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT-民工21110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值