包含3個master的ip及vip(若是還有多個vip,尤爲是內外網的那種,都添加進去)node
cat > /etc/ssl/apiserver/kubernetes-csr.json <<EOF
{
"CN": "kubernetes",
"hosts": [
"127.0.0.1",
"192.168.1.40",
"192.168.1.41",
"192.168.1.42",
"192.168.1.43",
"10.254.0.1",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "ChengDu",
"L": "ChengDu",
"O": "k8s",
"OU": "dessler"
}
]
}
EOF
複製代碼
備用git
head -c 32 /dev/urandom | base64
7SYVGPUjN+hw2fxa6I3+vfy5wPK+0uRgqo0b9Lyp8To=
複製代碼
使用剛纔的密匙github
mkdir -p /opt/kubernetes/cfg/
cat > /opt/kubernetes/cfg/encryption-config.yaml <<EOF
kind: EncryptionConfig
apiVersion: v1
resources:
- resources:
- secrets
providers:
- aescbc:
keys:
- name: key1
secret: 7SYVGPUjN+hw2fxa6I3+vfy5wPK+0uRgqo0b9Lyp8To=
- identity: {}
EOF
複製代碼
mkdir -p /var/log/kubernetes
複製代碼
注意修改裏面的ip地址(不一樣的master須要修改)json
由於就一個ip地址修改,因此這裏就沒有分紅3個了配置,就一個配置,大家本身修改下里面的ip地址便可bootstrap
cat > /usr/lib/systemd/system/kube-apiserver.service <<EOF
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=network.target
[Service]
ExecStart=/usr/bin/kube-apiserver \\
--enable-admission-plugins=Initializers,NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota \\
--anonymous-auth=false \\
--experimental-encryption-provider-config=/opt/kubernetes/cfg/encryption-config.yaml \\
--advertise-address=192.168.1.40 \\
--bind-address=192.168.1.40 \\
--insecure-port=0 \\
--authorization-mode=Node,RBAC \\
--runtime-config=api/all \\
--enable-bootstrap-token-auth \\
--service-cluster-ip-range=10.254.0.0/16 \\
--tls-cert-file=/etc/ssl/apiserver/kubernetes.pem \\
--tls-private-key-file=/etc/ssl/apiserver/kubernetes-key.pem \\
--client-ca-file=/etc/ssl/ca.pem \\
--kubelet-client-certificate=/etc/ssl/apiserver/kubernetes.pem \\
--kubelet-client-key=/etc/ssl/apiserver/kubernetes-key.pem \\
--service-account-key-file=/etc/ssl/ca-key.pem \\
--etcd-cafile=/etc/ssl/ca.pem \\
--etcd-certfile=/etc/ssl/apiserver/kubernetes.pem \\
--etcd-keyfile=/etc/ssl/apiserver/kubernetes-key.pem \\
--etcd-servers=https://192.168.1.40:2379,https://192.168.1.41:2379,https://192.168.1.42:2379 \\
--enable-swagger-ui=true \\
--allow-privileged=true \\
--apiserver-count=2 \\
--audit-log-maxage=30 \\
--audit-log-maxbackup=3 \\
--audit-log-maxsize=100 \\
--audit-log-path=/var/log/kubernetes/kube-apiserver-audit.log \\
--event-ttl=1h \\
--alsologtostderr=true \\
--logtostderr=false \\
--log-dir=/var/log/kubernetes \\
--v=2
Restart=on-failure
RestartSec=5
Type=notify
#User=k8s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
複製代碼
kubectl create clusterrolebinding kube-apiserver:kubelet-apis --clusterrole=system:kubelet-api-admin --user kubernetes複製代碼
8.啓動服務api
systemctl daemon-reload
systemctl start kube-apiserver
systemctl enable kube-apiserver
systemctl status kube-apiserver
複製代碼
kubectl cluster-info
Kubernetes master is running at https://192.168.1.43:8443
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.複製代碼
master的組件完成安全